- Да, но не штатными средствами браузера. Только если с помощью инструментов разработчика или другим HTTP-клиентом, коих великое множество во главе с curl . И уж точно не стоит ожидать, что ответ будет таким же, т. к. разные "методы" предполагают совершение с запрашиваемым ресурсом разных действий (обычно GET это чтение, а POST это добавление нового).
- Не совсем. Формально да, но поля, передаваемые в строке запроса, не могут в такой ситуации быть привязаны к полям формы, т. е. не могут быть изменены при пользовательском взаимодействии с веб-страницей (инструменты разработчика, конечно, могут всё). Что в action -атрибуте формы указано, то в строке запроса и уйдёт.
- Из п. 3 следует, что это должна быть форма без полей. Даже у кнопки отправки формы должен отсутствовать атрибут name , иначе она тоже будет считаться полем формы и её значение будет отправлено в теле запроса.
- Но зачем? Нет. Разметка страницы — результат не более чем одного запроса. Нет, фреймы открывают отдельные страницы, которые частью исходной не являются. Нет, загрузка с помощью JavaScript куска страницы не сделает этот кусок частью исходной; к тому же, JavaScript может быть выключен или не поддерживаться.
Существуют, но не в типичных браузерах, разумеется. telnet , к примеру. Установите telnet -клиент и выполните в командной строке: telnet mail.ru 80 (да, важно явно указать порт). Он подключится к серверу. Наберите приведённое вами тело как есть (у меня в PowerShell ввод почему-то не уходил эхом в стандартный вывод, но он воспринимался) и дважды переведите строку для завершения запроса. В стандартный вывод будет выведен ответ.
Для HTTPS
же потребуется что-нибудь посерьёзнее.
Спускаться на настолько низкий уровень (telnet ничего не знает об HTTP) нужно только для очень узкого круга задач. Чтобы отправить сколько-нибудь нетривиальный запрос, надо погрузиться в дебри HTTP и преобразовать ваши данные в правильный для него формат. Поэтому для совершения произвольных HTTP-запросов чаще пользуются специализированными HTTP-клиентами. Например, вышеупомянутым curl . У многих скриптовых языков (Python, Ruby) также имеются HTTP-клиенты в стандартной библиотеке, оперирующие типами данных языка и занимающиеся преобразованием в нужные форматы самостоятельно.
Я предполагаю, что вас интересует то, как голый браузер привык общаться по HTTP с помощью одного лишь HTML.
Но на HTML, формах и ссылках мир HTTP не ограничивается. Особенно сейчас, когда веб кишит разнообразными HTTP API и SPA на их основе. Современные браузеры не так просты: с помощью JavaScript они могут связывать практически любой ввод от пользователя с практически любым HTTP-запросом, нужно это лишь реализовать с помощью браузерного скрипта (кроме JavaScript на данный момент нет выбора).
Кроме того, нынче на просторах серверов, бывает, пасутся стада микросервисов, общающиеся (между собой и иногда даже между стадами) на языке HTTP словами на JSON/XML/и т. д. Там браузер не фигурирует ни на одной из сторон.
Который мы рассмотрели в предыдущей заметке, существует еще один метод отправки запроса по протоколу HTTP – метод POST. Метод POST тоже очень часто используется на практике.
Если, для того, чтобы обратиться к серверу методом GET, нам достаточно было набрать запрос в URL-адрес, то в методе POST все работает по другому принципу.
Для того, чтобы выполнить этот вид запроса, нам необходимо нажать на кнопку с атрибутом type=»submit», которая расположена на веб-странице. Обратите внимание, что эта кнопка расположена в элементе
Если пользователь введет в текстовое поле какой-либо текст и нажмет на кнопку «Отправить», то на сервер будет отправлена переменная text со значением того содержимого, которое ввел пользователь. Эта переменная будет отправлена методом POST.
Если в форме написать так: