Metody żądań HTTP — wyjaśnienie

HTTP definiuje dziewięć standardowych metod żądań, ale większość codziennego ruchu używa tylko kilku. Ta tabela wyjaśnia każdą metodę, czy jest bezpieczna i idempotentna oraz jakie kody zwraca udane wywołanie.

Zaktualizowano:

MetodaPrzeznaczenieBezpieczna?Idempotentna?Status sukcesu
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

Uwagi

Częste pytania

Jaka jest różnica między GET i POST?
GET pobiera zasób bez skutków ubocznych i można go bezpiecznie powtarzać; parametry są w URL. POST tworzy coś lub wyzwala akcję, może zmieniać stan i nie należy go bezmyślnie powtarzać.
Co oznacza, że metoda HTTP jest bezpieczna?
Metoda bezpieczna nigdy nie zmienia stanu serwera, więc można ją wywoływać bez ryzyka. GET, HEAD, OPTIONS i TRACE są bezpieczne; POST, PUT, PATCH i DELETE nie.
Jaka jest różnica między PUT i PATCH?
PUT zastępuje cały zasób tym, co wysyłasz; PATCH wprowadza częściową zmianę tylko w wybranych polach. PUT jest idempotentna, powtórzenie daje ten sam wynik; PATCH zwykle nie jest.
Do czego służy metoda HEAD?
HEAD działa jak GET, ale nie zwraca treści odpowiedzi. Służy do sprawdzania, czy zasób istnieje, jego rozmiaru lub nagłówków, bez pobierania całej zawartości.