Wiki-учебник по веб-технологиям: МетодыЗапросовПротоколаHTTP ...

Главная | |

Методы запросов протокола HTTP


Определение 12. Метод HTTP (англ. HTTP Method) — последовательность из любых символов кроме управляющих и разделителей, указывающая на основную операцию над ресурсом. Обычно метод представляет собой
короткое английское слово записанное заглавными буквами.

Название метода чувствительно к регистру. Если метод серверу неизвестен, от отвечает ошибкой 501 (Method not implemented). Если серверу метод известен, но он не применим к конкретному ресурсу, то возвращается сообщение с кодом 405
(Method Not Allowed).

Наиболее часто используемые методы это GET, HEAD и POST.

GET. Используется для запроса содержимого указанного ресурса.

Клиент может передавать параметры выполнения запроса в URI целевого ресурса после символа «?»:

GET /path/resource?param1=value1¶m2=value2 HTTP/1.1

Согласно стандарту HTTP, многократное повторение одного и того же запроса

GET должно приводить к одинаковым результатам. Это позволяет кэшировать ответы на запросы GET.

HEAD. Аналогичен методу GET, за исключением того, что в ответе сервера отсутствует тело. Запрос HEAD обычно применяется для извлечения метаданных, проверки наличия ресурса (валидация URL) и чтобы узнать не изменился ли он с
момента последнего обращения.

POST. Применяется для передачи пользовательские данных заданному ресурсу.

Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы.

В отличие от метода GET, для метода POST многократное повторение одних и тех же запросов POST может возвращать разные результаты (например, после каждой отправки комментария будет появляться одна копия этого комментария). Сообщение ответа сервера на выполнение метода POST не кэшируется.

Существуют также методы: PUT, PATCH, DELETE, TRACE, CONNECT, LINK, UNLINK.