Sobes.tech
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 odpowiedzi GET bez 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ą POST lub PATCH.

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.