Middle
Opowiedz o metodach HTTP i ich idempotencji.
sobes.tech AI
Odpowiedź od AI
Metody HTTP określają działanie, które klient chce wykonać na zasobie. Główne metody:
GET: Pobierz zasób. Jest idempotentny (powtarzające się żądania nie zmieniają stanu na serwerze).POST: Wyślij dane do przetworzenia (np. utwórz nowy zasób, wyślij dane formularza). Zazwyczaj nie jest idempotentny.PUT: Utwórz lub zaktualizuj zasób pod wskazanym URI. Jest idempotentny (powtarzające się żądanie z tymi samymi danymi doprowadzi do tego samego stanu zasobu).DELETE: Usuń zasób pod wskazanym URI. Jest idempotentny (po pierwszym udanym żądaniu, powtarzające się żądania nie zmienią stanu zasobu, ponieważ jest już usunięty).PATCH: Częściowo zmień zasób. Zazwyczaj nie jest idempotentny, ponieważ kolejność operacji może mieć znaczenie.HEAD: Pobierz nagłówki odpowiedziGETbez treści odpowiedzi. Jest idempotentny.OPTIONS: Pobierz listę obsługiwanych metod dla zasobu. Jest idempotentny.
Idempotentność oznacza, że wielokrotne wykonanie tego samego żądania doprowadzi do takiego samego końcowego stanu systemu, jak wykonanie go raz. Dotyczy to tylko efektów ubocznych na serwerze. Odpowiedzi serwera mogą się różnić (np. pierwsze żądanie DELETE może zwrócić 200 OK, a kolejne — 404 Not Found).
Przykłady operacji nieidempotentnych:
- Wielokrotne dodawanie produktu do koszyka za pomocą
POST. - Zwiększanie licznika za pomocą
POSTlubPATCH.
Przykłady operacji idempotentnych:
- Wielokrotne pobieranie danych za pomocą
GET. - Tworzenie lub aktualizacja użytkownika z określonym ID za pomocą
PUT. - Usuwanie użytkownika z określonym ID za pomocą
DELETE.
Idempotentność jest ważna w przypadku konieczności ponownego wysyłania żądań (np. w przypadku awarii sieci). Serwer może bezpiecznie wykonać idempotentne żądanie wielokrotnie, nie powodując niepożądanych zmian.