HTTP-методы: подробное объяснение

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

Обновлено:

МетодНазначениеБезопасный?Идемпотентный?Успешный статус
GETRetrieve a resourceYesYes200 OK
HEADRetrieve headers only, no bodyYesYes200 OK
POSTCreate a resource or trigger an actionNoNo201 Created
PUTReplace a resource entirelyNoYes200 OK / 204 No Content
PATCHApply a partial updateNoNo200 OK
DELETERemove a resourceNoYes200 OK / 204 No Content
OPTIONSCORS preflight; list allowed methodsYesYes204 / 200 OK
TRACEEcho the request back for diagnosticsYesYes200 OK
CONNECTOpen a tunnel, e.g. HTTPS via a proxyNoNo200 OK

Примечания

Частые вопросы

В чём разница между GET и POST?
GET получает ресурс без побочных эффектов и безопасен для повтора; параметры передаются в URL. POST создаёт что-то или запускает действие, может менять состояние и не должен повторяться вслепую.
Что значит «безопасный» HTTP-метод?
Безопасный метод никогда не меняет состояние сервера, поэтому его можно вызывать без риска. Безопасны GET, HEAD, OPTIONS и TRACE; POST, PUT, PATCH и DELETE — нет.
В чём разница между PUT и PATCH?
PUT заменяет весь ресурс тем, что вы отправляете; PATCH частично меняет только выбранные поля. PUT идемпотентен — повтор даёт тот же результат; PATCH, как правило, нет.
Что делает метод HEAD?
HEAD ведёт себя как GET, но не возвращает тело ответа. Он удобен для проверки существования ресурса, его размера или заголовков без загрузки всего содержимого.