Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Przewodnik po metodach HTTP

Poznaj wszystkie metody HTTP: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS. Różnice, zastosowania, idempotentność. Dla programistów. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
33 znaków

Metody w zestawie

6

filtr z selekty albo metody wykryte na liście wejściowej; bez dopasowania pełny katalog (9 metod)

Idempotentne

4

powtórzenie żądania daje ten sam stan; PATCH zwykle tak — zależnie od formatu poprawki

Bezpieczne

2

nie powinny zmieniać stanu serwera (odczyty i diagnoza)

Widok

Szczegółowy przewodnik

decyduje o formacie wyniku tekstowego

Ściąga metod HTTP
======================

Uwagi: „Bezpieczna” oznacza, że metoda nie powinna zmieniać stanu serwera. „Idempotentna” oznacza, że powtórzenie tego samego żądania powinno prowadzić do tego samego stanu końcowego.

GET — Pobiera reprezentację zasobu.
  Bezpieczna: Tak | Idempotentna: Tak | Cache'owalna: Tak
  Treść żądania: Nietypowe (zwykle ignorowane).
  Typowe statusy: 200 OK, 304 Not Modified, 404 Not Found
  Kiedy używać: Użyj GET do odczytu danych bez zmiany stanu serwera. Preferuj parametry zapytania do filtrowania i paginacji.
  Uwagi: GET jest domyślną metodą do odczytów i najlepiej współpracuje z pamięcią podręczną oraz narzędziami przeglądarki.
  Przykład: curl -i "https://api.example.com/v1/users?limit=20"

----------------------------

POST — Tworzy zasób lub wywołuje przetwarzanie po stronie serwera.
  Bezpieczna: Nie | Idempotentna: Nie | Cache'owalna: Nie
  Treść żądania: Częste (dane do utworzenia, wejście komendy).
  Typowe statusy: 201 Created, 202 Accepted, 200 OK, 400 Bad Request, 409 Conflict
  Kiedy używać: Użyj POST, gdy serwer decyduje o URI nowego zasobu, lub gdy wysyłasz komendę/przepływ pracy.
  Uwagi: Jeśli potrzebujesz bezpiecznych powtórzeń, rozważ klucze idempotencji lub alternatywne rozwiązania.
  Przykład: curl -i -X POST "https://api.example.com/v1/users" -H "Content-Type: application/json" -d '{"name":"Ada"}'

----------------------------

PUT — Tworzy lub zastępuje zasób pod znanym URI.
  Bezpieczna: Nie | Idempotentna: Tak | Cache'owalna: Nie
  Treść żądania: Częste (pełna reprezentacja).
  Typowe statusy: 200 OK, 204 No Content, 201 Created, 400 Bad Request, 404 Not Found
  Kiedy używać: Użyj PUT dla pełnej semantyki zastąpienia, gdy klient znający docelowe URI może wysłać kompletną reprezentację.
  Uwagi: Ponieważ PUT jest idempotentne, powtórzenie tego samego żądania powinno prowadzić do tego samego stanu końcowego.
  Przykład: curl -i -X PUT "https://api.example.com/v1/users/123" -H "Content-Type: application/json" -d '{"name":"Ada"}'

----------------------------

DELETE — Usuwa zasób.
  Bezpieczna: Nie | Idempotentna: Tak | Cache'owalna: Nie
  Treść żądania: Nietypowe.
  Typowe statusy: 204 No Content, 200 OK, 404 Not Found
  Kiedy używać: Użyj DELETE do usunięcia zasobu wskazanego przez URI. Rozważ mechanizm soft-delete, jeśli odzyskiwanie ma znaczenie.
  Uwagi: DELETE jest idempotentne: usunięcie tego samego zasobu dwukrotnie powinno dać ten sam stan końcowy (zasób nieobecny).
  Przykład: curl -i -X DELETE "https://api.example.com/v1/users/123"

----------------------------

PATCH — Wprowadza częściową aktualizację zasobu.
  Bezpieczna: Nie | Idempotentna: Zwykle tak (zależy od formatu poprawki). | Cache'owalna: Nie
  Treść żądania: Częste (częściowe zmiany).
  Typowe statusy: 200 OK, 204 No Content, 400 Bad Request, 404 Not Found, 409 Conflict
  Kiedy używać: Użyj PATCH, gdy chcesz zaktualizować tylko niektóre pola lub zastosować dobrze zdefiniowany zestaw zmian.
  Uwagi: PATCH może być idempotentne, ale niektóre formaty poprawek (np. „zwiększenie”) nie są.
  Przykład: curl -i -X PATCH "https://api.example.com/v1/users/123" -H "Content-Type: application/json" -d '{"email":"[email protected]"}'

----------------------------

OPTIONS — Opisuje opcje komunikacji dla docelowego zasobu.
  Bezpieczna: Tak | Idempotentna: Tak | Cache'owalna: Nie
  Treść żądania: Nietypowe.
  Typowe statusy: 204 No Content, 200 OK
  Kiedy używać: Użyj OPTIONS, aby odkryć wspierane metody lub do żądań preflight CORS w przeglądarce.
  Uwagi: Poprawne odpowiedzi OPTIONS są istotne dla klientów przeglądarkowych korzystających z CORS.
  Przykład: curl -i -X OPTIONS "https://api.example.com/v1/users"

----------------------------
Flagi i statusy 1:1 z katalogu w kodzie; „Bezpieczna” = nie zmienia stanu serwera, „Idempotentna” = powtórzenie daje ten sam stan końcowy (PATCH zwykle tak, zależnie od poprawki)
MetodaCelBezpiecznaIdempotentnaTypowe statusy
GET Pobiera reprezentację zasobu. Tak Tak 200 OK, 304 Not Modified, 404 Not Found
POST Tworzy zasób lub wywołuje przetwarzanie po stronie serwera. Nie Nie 201 Created, 202 Accepted, 200 OK, 400 Bad Request, 409 Conflict
PUT Tworzy lub zastępuje zasób pod znanym URI. Nie Tak 200 OK, 204 No Content, 201 Created, 400 Bad Request, 404 Not Found
PATCH Wprowadza częściową aktualizację zasobu. Nie Zwykle tak (zależy od formatu poprawki). 200 OK, 204 No Content, 400 Bad Request, 404 Not Found, 409 Conflict
DELETE Usuwa zasób. Nie Tak 204 No Content, 200 OK, 404 Not Found
HEAD Pobiera nagłówki zasobu bez treści odpowiedzi. Tak Tak 200 OK, 304 Not Modified, 404 Not Found
OPTIONS Opisuje opcje komunikacji dla docelowego zasobu. Tak Tak 204 No Content, 200 OK
TRACE Odsyła otrzymane żądanie w celach diagnostycznych (rzadko włączane). Tak Tak 200 OK, 405 Method Not Allowed
CONNECT Ustanawia tunel do serwera (używane przez proxy). Nie Nie 200 Connection Established, 405 Method Not Allowed
Przypisanie zgodne z kolumną „typowe statusy” katalogu metod w kodzie narzędzia
KodZnaczenieTypowe metody
200 OK Udane żądanie — odpowiedź zawiera treść GET (odczyt), PUT/PATCH po aktualizacji z treścią, HEAD (nagłówki jak GET)
201 Created Utworzono nowy zasób POST do kolekcji; serwer podaje adres zasobu w nagłówku Location
204 No Content Sukces bez treści odpowiedzi DELETE, PUT/PATCH bez zwracania danych, odpowiedź OPTIONS na preflight CORS

Warto wiedzieć — metody HTTP w praktyce

Bezpieczność i idempotencja

Bezpieczna metoda tylko czyta (GET, HEAD, OPTIONS) — klient może ją wywołać bez obaw o skutki. Idempotentna (GET, PUT, DELETE) daje przy powtórzeniu ten sam stan końcowy, dlatego retry sieciowy jest bezpieczny; POST nie jest idempotentne — dwa żądania mogą utworzyć dwa zasoby, chyba że użyjesz kluczy idempotencji.

PUT kontra PATCH

PUT zastępuje zasób w całości pod znanym URI — klient wysyła kompletną reprezentację. PATCH wysyła tylko zmiany (częściowa aktualizacja); bywa idempotentny („ustaw e-mail na X”), ale nie zawsze („zwiększ licznik o 1” zmienia wynik przy każdym powtórzeniu).

OPTIONS i preflight CORS

Zanim przeglądarka wyśle „podejrzane” żądanie między domenami, pyta serwer metodą OPTIONS (nagłówki Access-Control-Request-Method/Headers). Odpowiedź z Allow lub Access-Control-Allow-Methods decyduje, czy właściwe żądanie w ogóle poleci — stąd 204 No Content jako typowa odpowiedź preflight.

TRACE i CONNECT — rzadcy

TRACE odsyła żądanie do diagnostyki, ale otwiera drogę atakom XST i bywa blokowany przez serwery i proxy. CONNECT buduje tunel (tak wjeżdża HTTPS przez proxy) — dotyczy infrastruktury, a nie endpointów REST; obu zwykle nie włącza się w publicznym API.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Przewodnik po metodach HTTP – kompletny opis GET, POST, PUT, DELETE

Metody HTTP (HTTP verbs) definiują akcję jaką klient chce wykonać na zasobie serwera. Prawidłowe użycie metod HTTP jest podstawą projektowania REST API. Przewodnik omawia wszystkie metody: semantykę, idempotentność, bezpieczeństwo i praktyczne zastosowania.

metody HTTP GET POST PUT DELETE HTTP verbs REST API metody HTTP

Podstawowe metody HTTP

GET: pobierz zasób. Bezpieczna, idempotentna, brak body. POST: utwórz zasób lub wyślij dane. Nie jest idempotentna. PUT: zastąp zasób całkowicie. Idempotentna. PATCH: modyfikuj częściowo. DELETE: usuń zasób. Idempotentna (wielokrotne DELETE = ten sam efekt). HEAD: jak GET ale bez body (sprawdź nagłówki). OPTIONS: jakie metody obsługuje endpoint.

Bezpieczeństwo i idempotentność

Bezpieczna metoda: nie zmienia stanu serwera (GET, HEAD, OPTIONS). Idempotentna: wielokrotne żądanie = ten sam efekt (GET, PUT, DELETE, HEAD). POST: NIE jest idempotentna (wielokrotne = wielokrotne rekordy). PATCH: może być idempotentna zależy od implementacji. Praktyczne znaczenie: retry logic. Jeśli GET/PUT/DELETE timeout → bezpieczne ponowienie. POST → może zduplikować dane.

PUT vs PATCH

PUT: zastąp cały zasób. Musisz wysłać kompletną reprezentację. PUT /users/1 z {name:"Jan", email:"[email protected]"} → zastępuje wszystkie pola. PATCH: modyfikuj wybrane pola. PATCH /users/1 z {email:"[email protected]"} → zmienia tylko email. RFC 5789 definiuje PATCH. JSON Patch (RFC 6902): operacje add/remove/replace/move. JSON Merge Patch (RFC 7396): prostszy format.

Kody odpowiedzi HTTP dla metod

GET 200 OK (znaleziono), 404 Not Found. POST 201 Created (z nagłówkiem Location), 400 Bad Request. PUT 200 OK lub 204 No Content. PATCH 200 OK. DELETE 204 No Content (sukces bez body), 404 jeśli nie istnieje. OPTIONS 200 z nagłówkiem Allow: GET, POST, PUT, DELETE. HEAD: jak GET ale ciało odpowiedzi puste.

Najczęstsze pytania

Jaka jest różnica między POST a PUT?

POST: tworzy zasób, URL zasobu generowany przez serwer. POST /api/users → serwer decyduje o ID. PUT: zastępuje zasób pod konkretnym URL. PUT /api/users/123 → klient zna docelowy URL. POST nie jest idempotentny (dwa POST = dwa rekordy). PUT jest idempotentny (dwa PUT = jeden zasób). W REST API: POST dla create, PUT dla update/replace.

Kiedy używać PATCH zamiast PUT?

PATCH gdy chcesz zmienić tylko jedno/kilka pól i nie chcesz wysyłać całego obiektu. PUT jest lepszy gdy chcesz zastąpić zasób kompletnie. Przykład: user ma 20 pól. Zmiana emaila: PATCH /users/1 {email: "[email protected]"} (wysyłasz 1 pole). PUT wymagałoby wszystkich 20 pól. PATCH oszczędza bandwidth. Caveat: PATCH wymaga ostrożnej implementacji (partial update logic).

Dlaczego formularz HTML obsługuje tylko GET i POST?

Specyfikacja HTML4/5 (form method): tylko GET i POST. Historia: HTML starszy niż REST. Obejścia: method overriding (PUT/DELETE w ukrytym polu), AJAX (fetch/XHR może używać wszystkich metod). Framework: Laravel: @method('PUT') w formularzu. Django: podobne metody. W nowoczesnych aplikacjach SPA (React, Vue): AJAX + wszystkie metody HTTP.

Co to są idempotentne żądania i dlaczego ważne?

Idempotentność: f(f(x)) = f(x). Wielokrotne wywołanie daje ten sam wynik. Znaczenie praktyczne: retry on timeout. DELETE /orders/1: jeśli timeout → ponów → bezpieczne (404 jeśli już usunięte). POST /orders: jeśli timeout → NIEBEZPIECZNE ponowienie (zduplikowany order). Rozwiązanie dla POST: Idempotency-Key header (Stripe API). UUID w body żądania.

Jak testować metody HTTP w praktyce?

curl: curl -X GET https://api.example.com/users. curl -X POST -H "Content-Type: application/json" -d '{"name":"Jan"}' https://api.example.com/users. Postman: GUI dla HTTP requests. HTTPie: http POST api.example.com/users name=Jan. Thunder Client (VS Code extension). Insomnia. Dev Tools Network tab: sprawdź metody rzeczywistych żądań. Hoppscotch (open-source Postman alternative).

Powiązane narzedzia: tester API REST, analizator nagłówków HTTP i generator URL API.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!