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, але не повертає тіло відповіді. Він зручний для перевірки існування ресурсу, його розміру чи заголовків без завантаження всього вмісту.