Как отправить post запрос из браузера chrome

Обновлено: 06.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Современные веб-сайты становятся всё сложнее, используют всё больше библиотек и веб технологий. Для целей отладки разработчиками сложных веб-сайтов и веб-приложений потребовались новые инструменты. Ими стали «Инструменты разработчика» интегрированные в сами веб-браузеры:

  • Chrome DevTools
  • Firefox Developer Tools

Они по умолчанию поставляются с браузерами (Chrome и Firefox) и предоставляют много возможностей по оценке и отладке сайтов для самых разных условий. К примеру, можно открыть сайт или запустить веб-приложение как будто бы оно работает на мобильном устройстве, или симулировать лаги мобильных сетей, или запустить сценарий ухода приложения в офлайн, можно сделать скриншот всего сайта, даже для больших страниц, требующих прокрутки и т.д. На самом деле, Инструменты разработчика требуют глубокого изучения, чтобы по-настоящему понять всю их мощь.

В предыдущих статьях я уже рассматривал несколько практических примеров использования инструментов DevTools в браузере:

Эта небольшая заметка посвящена анализу POST запросов. Мы научимся просматривать отправленные методом POST данные прямо в самом веб-браузере. Научимся получать их в исходном («сыром») виде, а также в виде значений переменных.

По фрагменту исходного кода страницы видно, что данные из формы передаются методом POST, причём используется конструкция onChange="this.form.submit();":


Как увидеть данные, переданные методом POST, в Google Chrome

Итак, открываем (или обновляем, если она уже открыта) страницу, от которой мы хотим узнать передаваемые POST данные. Теперь открываем инструменты разработчика (в предыдущих статьях я писал, как это делать разными способами, например, я просто нажимаю F12):


Теперь отправляем данные с помощью формы.

Переходим во вкладку «Network» (сеть), кликаем на иконку «Filter» (фильтр) и в качестве значения фильтра введите method:POST:


Как видно на предыдущем скриншоте, был сделан один запрос методом POST, кликаем на него:


  • Header — заголовки (именно здесь содержаться отправленные данные)
  • Preview — просмотр того, что мы получили после рендеренга (это же самое показано на странице сайта)
  • Response — ответ (то, что сайт прислал в ответ на наш запрос)
  • Cookies — кукиз
  • Timing — сколько времени занял запрос и ответ

Поскольку нам нужно увидеть отправленные методом POST данные, то нас интересует столбец Header.

Там есть разные полезные данные, например:

  • Request URL — адрес, куда отправлена информация из формы
  • Form Data — отправленные значения

Пролистываем до Form Data:


Там мы видим пять отправленных переменных и из значения.

Если нажать «view source», то отправленные данные будут показаны в виде строки:


Вид «view parsed» - это вид по умолчанию, в котором нам в удобном для восприятия человеком виде показаны переданные переменные и их значения.

Как увидеть данные, переданные методом POST, в Firefox

В Firefox всё происходит очень похожим образом.

Открываем или обновляем нужную нам страницу.

Открываем Developer Tools (F12).

Отправляем данные из формы.

Переходим во вкладку «Сеть» и в качестве фильтра вставляем method:POST:


Кликните на интересующий вас запрос и в правой части появится окно с дополнительной информацией о нём:


Переданные в форме значения вы увидите если откроете вкладку «Параметры»:



Другие фильтры инструментов разработчика

Для Chrome кроме уже рассмотренного method:POST доступны следующие фильтры:

Есть ли расширение или функциональность в Chrome и/или Firefox, которые мне не хватает?

спросил(а) 2020-02-29T19:23:42+03:00 1 год, 8 месяцев назад

Я делаю приложение Chrome под названием Postman для этого типа вещей. Все остальные расширения казались немного устаревшими, поэтому я сделал свой собственный. Он также имеет множество других функций, которые были полезны для документирования нашего собственного API здесь.

Postman теперь также имеет родные приложения (то есть автономно) для Windows, Mac и Linux! Теперь лучше использовать собственные приложения, более подробно здесь.

ответил(а) 2020-02-29T19:39:08.331449+03:00 1 год, 8 месяцев назад

CURL УДИВИТЕЛЬНО делать то, что вы хотите! Это простой, но эффективный инструмент командной строки.

Остальные реализации тестовых команд:

ответил(а) 2020-03-31T23:17:12+03:00 1 год, 7 месяцев назад

enter image description here

Если вы настаиваете на расширении браузера, тогда:

Chrome:

Firefox:

ответил(а) 2020-03-06T20:37:31+03:00 1 год, 8 месяцев назад

Firefox

Откройте панель "Сеть" в "Инструменты разработчика", нажав Ctrl-Shift-Q или перейдя в Firefox → Инструменты разработчика → вкладка "Сеть" (выделена). Затем нажмите на значок маленькой двери сверху справа (в развернутом виде на скриншоте, вы найдете его слева от выделенных Заголовков), вторая строка (если вы не увидите ее, а затем перезагрузите страницу) → Изменить и resend любой запрос, который вы хотите

enter image description here

EDIT: добавлено изображение. К сожалению, я нахожусь в Linux, поэтому нет простого инструмента, чтобы объединить все вокруг, но, надеюсь, основные моменты сделают все ясно. .

ответил(а) 2020-02-29T19:23:42+03:00 1 год, 8 месяцев назад

Будучи очень вдохновленным Postman для Chrome, я решил написать что-то подобное для Firefox.

REST Easy * - это перезагружаемое дополнение Firefox, которое предназначено для обеспечения максимально возможного контроля над запросами. Дополнение все еще находится в экспериментальном состоянии (оно еще не было просмотрено Mozilla) , но развитие идет хорошо.

Есть ли какие-то функции в Chrome и / или Firefox, которых мне не хватает?

Я делаю приложение Chrome под названием Postman для подобных вещей. Все остальные расширения казались немного устаревшими, поэтому я сделал свои собственные. Он также имеет множество других функций, которые были полезны для документирования нашего собственного API здесь.

Postman теперь также имеет собственные приложения (т.е. автономные) для Windows, Mac и Linux! Сейчас предпочтительнее использовать собственные приложения, подробнее см. здесь.

CURL УДИВИТЕЛЬНЫЙ, чтобы делать то, что вы хотите! Это простой, но эффективный инструмент командной строки.

Команды тестирования реализации отдыха:

Firefox Dev Tools with button

POST request body highlighted

HTTPie screenshot

Если вы настаиваете на расширении браузера, то:

Chrome :

Firefox :

С формой, просто установите method на "post"

Т.е. создайте себе очень простую страницу для проверки действий публикации.

Вот расширение Advanced REST Client для Chrome.

У меня он отлично работает - помните, что вы все еще можете использовать с ним отладчик. Панель «Сеть» особенно полезна; он предоставит вам обработанные объекты JSON и страницы ошибок.

Для firefox есть также неплохое расширение RESTClient:

Может не иметь прямого отношения к браузерам, но fiddler - еще одно хорошее программное обеспечение.

Fiddler web debugger

Просто чтобы дать свои 2 цента за этот ответ, после повышения уровня Postman появились и другие клиенты, о которых стоит упомянуть здесь:

    : с приложением для ПК и плагин Chrome : ранее известная как Postwoman, и с также доступен плагин Chrome. Вы также можете заставить его работать локально с помощью Docker, если хотите подшутить : если вы используете Mac : уже упоминается как Chrome plugin, но стоит отметить, что в нем также есть настольное приложение : написан на java и с большим количеством функций тестирования. : еще один способ тестирования API. Он поставляется с интеграцией SOAP и имеет плагин Chrome доступен

Вы можете отправлять запросы прямо из браузера с помощью ReqBin. Никаких плагинов или настольных приложений не требуется.

Здесь есть хороший простой пример Fetch API здесь

Некоторые из преимуществ команды fetch действительно ценны: она проста, коротка, быстра, доступна и даже в качестве консольной команды она хранится на вашей консоли Chrome и может использоваться позже.

Простота нажатия F12, написания команды на вкладке консоли (или нажатия клавиши «вверх», если вы ее использовали раньше), а затем нажатия клавиши ввода, ожидания и возврата ответа - вот что делает ее действительно полезной для простых тестов на отправку запросов.

Конечно, основным недостатком здесь является то, что, в отличие от Postman, он не передает политику перекрестного происхождения, но все же я считаю его очень полезным для тестирования в локальной среде или других средах, где я могу включить CORS вручную.

Есть ли какое-либо расширение или функциональность в Chrome и/или Firefox, которые мне не хватает?

Немного неясное название, но вот идет . У меня есть магистральный UI, который делает огромное количество звонков на API при загрузке страницы. Он использует Backbone Fetch Cache для кэширования запросов GET. В Chrome промах кэша означает, что при выполнении многих запросов GET к одному и тому.

Я хочу протестировать некоторые url-е на небольшом пользовательском сервере, над которым работаю. я использовал Wfetch на windows и его потрясающе Мои требования к этим тестам таковы: - должен быть в состоянии работать на linux(ubuntu) - должен быть в состоянии установить все параметры вручную -.

Я делал приложение Chrome под названием Postman для этого типа вещей. Все остальные расширения казались немного устаревшими, так что я сделал их сам. Он также имеет кучу других функций, которые были полезны для документирования нашего собственного API здесь.

Postman теперь также имеет собственные приложения (т. е. автономные) для Windows, Mac и Linux! Сейчас предпочтительнее использовать нативные приложения, Подробнее читайте здесь .

CURL -это AWESOME, чтобы делать то, что вы хотите ! Это простой, но эффективный инструмент командной строки.

Rest команды тестирования реализации :

Firefox

Firefox Dev Tools with button "Edit and Resent" highlighted

POST request body highlighted

С версией Firefox 36 запросы ajax POST (через jquery) прерываются (в состоянии firebug прерывается), если длина содержимого >= 1779. Если размер равен <= 1778 запросов отправляются на сервер Те же запросы отлично работают в Chrome и Firefox 35 или меньше для любой длины контента. Серверная.

enter image description here

Если вы настаиваете на расширении браузера, то:

Хром :

Firefox :

Будучи очень вдохновлен Postman для Chrome , я решил написать что-то подобное для Firefox.

REST Easy * -это надстройка restartless Firefox, цель которой - обеспечить как можно больший контроль над запросами. Надстройка все еще находится в экспериментальном состоянии (она еще даже не была рассмотрена Mozilla) , но разработка идет хорошо.


Вы специально просили "расширение или функциональность в Chrome и/или Firefox", которые дают ответы, которые вы уже получили, но мне нравится простота ответа oezi на закрытый вопрос "how to send a post request with a web browser" для простых параметров. оези говорит::

с помощью формы просто установите method на "post"

I.e. создайте себе очень простую страницу для проверки действий поста.

Вот расширенное клиентское расширение REST для Chrome.

Он отлично работает для меня-помните, что вы все еще можете использовать отладчик с ним. Сетевая панель особенно полезна; она даст вам визуализированные объекты JSON и страницы ошибок.

Для firefox есть также расширение под названием RESTClient, которое довольно приятно:

Возможно, это не имеет прямого отношения к браузерам, но fiddler -еще одно хорошее программное обеспечение.

Fiddler web debugger

Вы можете отправлять запросы непосредственно из браузера с помощью ReqBin. Никаких плагинов или настольных приложений не требуется.

Похожие вопросы:

Немного неясное название, но вот идет . У меня есть магистральный UI, который делает огромное количество звонков на API при загрузке страницы. Он использует Backbone Fetch Cache для кэширования.

Я хочу протестировать некоторые url-е на небольшом пользовательском сервере, над которым работаю. я использовал Wfetch на windows и его потрясающе Мои требования к этим тестам таковы: - должен быть.

С версией Firefox 36 запросы ajax POST (через jquery) прерываются (в состоянии firebug прерывается), если длина содержимого >= 1779. Если размер равен <= 1778 запросов отправляются на сервер Те.

HTTP-протокол

В уроке покажу, как использовать POST-запросы для передачи данных на сервер. Разработаем WEB-сервер, обрабатывающий методы GET и POST. Узнаем, как формировать POST-запросы с помощью HTML-формы.

Главное достоинство GET-запросов – компактность. В одной строке адресная информация и передаваемые данные. А с помощью POST-запросов информация прячется где-то внутри запроса. Она недоступна простому пользователю.

Из этого вытекают все плюсы и минусы обоих методов. Достоинства и недостатки GET и POST-запросов зеркально-противоположные.

Каким способом передавать данные на сервер выбирать вам.

Но обратите внимание на последнюю строку таблицы. У WEB-сервера, реализованного на микроконтроллере, вычислительные ресурсы крайне ограничены.

И еще учтите, что GET-запросы должен обрабатывать любой WEB-сервер, а POST-запросы придется обрабатывать только для приема данных. Добавить обработку URI в GET-запросе намного проще, чем добавить на сервер еще один метод. Вы это прочувствуете ниже, при реализации сервера.

Формализованная постановка задачи.

Мы собираемся разработать WEB-сервер, работающий по следующему алгоритму:

Формирование POST-запросов средствами HTML. HTML-формы.

В HTML существует интерактивный элемент, позволяющий производить передачу данных на сервер. Это форма. Вы встречались с формой, когда регистрировались на сайте, писали комментарии и во многих других случаях.

Окно комментариев

HTML-форма – это поле, раздел документа, дающий пользователю возможность вводить информацию для передачи на сервер. Передача может происходить как GET, так и POST-запросами. Сейчас нас интересует второй метод.

Я приведу минимальный объем информации для работы с формами. Все остальное найдете в учебниках по HTML.

Форма – блочный элемент. Все элементы формы заключаются в теги:

У формы несколько необязательных атрибутов и два обязательных:

  • action - содержит URI обработчика формы, т.е. сервера;
  • method – метод отправки данных post или get.

Можно добавить атрибут name – имя формы.

<form action="http://192.168.1.10" method="post" name="form">

Остается добавить нужные элементы формы.

Основной элемент - <input атрибуты> .

Позволяет создавать различные поля для ввода числовой и текстовой информации.

Нужных нам атрибута 3:

Другие элементы формы.

Элемент,
формат
Описание Вид
<textarea> </textarea> Многострочный текст, изменяется размер поля. textarea
<select> </select> Выпадающий список.

С помощью любого текстового редактора, например Notepad, напишем простую HTML-форму регистрации.

<form action="http://192.168.1.10" method="post" name="form">
<br>
Имя: <input name="fname" type="text" value=""><br><br>
Фамилия: <input name="sname" type="text" value=""><br><br>
Возраст: <input name="age" type="number" value=""><br><br>
Пол:
М <input name="sex" type="radio" value="male">
Ж <input name="sex" type="radio" value="female"><br><br>

Любимый вид спорта:
<select name="sport">
<option value="Football"> Футбол
<option value="Volleyball"> Волейбол
<option value="Basketball"> Баскетбол
<option value="Swimming"> Плавание
<option value="Nothing"> Нет
</select><br><br>

Сохраним в файле с именем TestForm.html.

Зарегистрируйтесь и оплатите. Всего 60 руб. в месяц за доступ ко всем ресурсам сайта!

В ней: текстовые поля, поля для чисел, переключатель, выпадающий список, многострочный текст и кнопка отправки данных.

Запустим файл из любого браузера.

Окно браузера

Теперь мы можем отправлять POST-запросы из браузера.

Формат данных в POST-запросах.

Посмотрим, как данные передаются в запросе. Будем использовать программу вывода данных TCP-пакета в последовательный порт, написанную еще в уроке 70.

Зарегистрируйтесь и оплатите. Всего 60 руб. в месяц за доступ ко всем ресурсам сайта!

Окно браузера

Я заполнил форму на английском языке, для того чтобы было проще увидеть значения переменных. При использовании кириллицы символы передавались бы кодами в текстовом виде. Ниже я приведу пример.

В мониторе последовательного порта появится текст POST-запроса.

Окно монитора

В нем переданы значения переменных формы. Формат:

  • Имя_элемента это имя, заданное для элемента в HTML-форме.
  • Значение, то, что будет набрано в форме или то, что соответствует выбранному значению для переключателей, выпадающих списков и т.п.
  • Символ & разделяет переменные.

Для ввода имени мы создали объект: <input name="fname" type="text" value=""> ,
назвали его: fname,
набрали в форме: Ivan,
получили: fname=Ivan.

Для выбора пола создали переключатель: <input name="sex" type="radio" value="male"> ,
назвали: sex (это по-английски пол, а не то, что вы подумали),
выбрали в форме: мужской,
получили: sex=male.

Если заполнить форму на русском языке полностью, то данные POST-запроса будут выглядеть так.

Окно браузера

Обработка POST-запроса. Разработка WEB-сервера.

Давайте для начала выделим данные POST-запроса в текстовую строку. Для контроля выведем ее в последовательный порт.

Программы WEB-серверов из предыдущих уроков при приеме запроса подвешивали программу.

void loop()
client = server.available(); // ожидаем объект клиент
if (client)
while (client.connected())
if (client.available())

// з десь программа обрабатывает очередной символ
>

// здесь программа ожидает символ
// т.е. висит пока не будет обработан весь запрос
>
>

// при обработке запроса сюда программа не доходит
>

Давайте покажем класс и напишем программу, которая будет обрабатывать запрос параллельным процессом. Т.е. при приеме данных она не будет подвешивать контроллер. Цикл loop все время будет доходить до конца.

При получении запроса программа будет принимать данные, и формировать флаг requestRecieved (признак запрос принят). А в основном цикле мы будем анализировать этот признак и при его активном состоянии выводить в последовательный порт полученные данные.

// проверка признака запроса
if( requestRecieved == true )
requestRecieved= false;
Serial.println();
Serial.println(F("POST-request recieved"));
Serial.println(dataPost); // вывод данных
>
>

Перед тем, как читать урок дальше лучше загрузите полный скетч первого варианта сервера.

Зарегистрируйтесь и оплатите. Всего 60 руб. в месяц за доступ ко всем ресурсам сайта!

Программа реализована по принципу пошагового автомата. Таким образом мы разрабатывали охранную сигнализацию в уроке 17.

Основной скелет программы представляет собой блоки, через которые проходит программа в зависимости от переменной mode. Например, если mode=1, то цикл loop будет проходить через блок “определение типа запроса GET или POST”. Для того, чтобы переключиться на другой блок достаточно занести соответствующее значение в переменную mode. Переменная mode, как бы запоминает, какую операцию в данный момент выполняет программа.

Программа пока не закончена. Проверим, как она работает. Я загрузил скетч в плату, открыл монитор порта. Запустил на компьютере код HTML-формы и заполнил форму теми же данными на мифического Иванова.

Окно монитора

GET-запросы наш сервер тоже определяет.

Монитор последовательного порта

Выделить из полученной строки переменные уже не сложно.

Зарегистрируйтесь и оплатите. Всего 60 руб. в месяц за доступ ко всем ресурсам сайта!

Полученные переменные

До этого момента мы запускали на компьютере код HTML-формы, а потом формировали POST-запрос. Давайте сделаем так, чтобы форма появлялась в браузере из нашего сервера.

Для этого необходимо в обработку GET-запроса вставить отсылку клиенту кода формы TestForm.html. Не забыть экранировать кавычки.

Полный скетч сервера:

Зарегистрируйтесь и оплатите. Всего 60 руб. в месяц за доступ ко всем ресурсам сайта!

В окне браузера появляется форма регистрации, полученная уже с нашего сервера.

Окно браузера

Заполняем, отсылаем данные на сервер. У меня все работает.

Я установил такой ответ клиенту на POST-запрос:

Сервер не закрывает сессию на POST-запрос и продолжает принимать новые пакеты. Т.е. обратившись к серверу, мы получаем в браузере форму и можем, не прерывая сессию многократно отсылать данные. Получается управление сервером в реальном времени. При этом ничто не мешает нам опять обратиться к серверу с GET-запросом и получить от него форму заново.

Если нужен алгоритм, при котором после отсылки данных на сервер надо закрыть соединение, то ответ клиенту на POST-запросы должен выглядеть так:

Последний штрих – ответ клиенту на ошибочный запрос кодом 400 (неверный запрос).

Зарегистрируйтесь и оплатите. Всего 60 руб. в месяц за доступ ко всем ресурсам сайта!

Мы создали работоспособный WEB-сервер. Еще раз подчеркну, что сервер работает параллельным процессом. В конце цикла loop можно выполнять другие действия, конечно, которые надолго не подвешивают программу.

Читайте также: