Sobes.tech
Middle

Povězte o metodách HTTP a jejich idempotentnosti.

sobes.tech AI

Odpověď od AI

Metody HTTP určují akci, kterou chce klient provést na zdroji. Hlavní metody:

  • GET: Získat zdroj. Je idempotentní (opakované požadavky nem mění stav na serveru).
  • POST: Odeslat data ke zpracování (například vytvořit nový zdroj, odeslat data formuláře). Obvykle není idempotentní.
  • PUT: Vytvořit nebo aktualizovat zdroj na dané URI. Je idempotentní (opakované požadavky se stejnými daty povedou ke stejnému stavu zdroje).
  • DELETE: Smazat zdroj na dané URI. Je idempotentní (po prvním úspěšném požadavku, opakované požadavky nezmění stav zdroje, protože již byl smazán).
  • PATCH: Částečně změnit zdroj. Obvykle není idempotentní, protože pořadí operací může být důležité.
  • HEAD: Získat hlavičky odpovědi GET bez těla odpovědi. Je idempotentní.
  • OPTIONS: Získat seznam podporovaných metod pro zdroj. Je idempotentní.

Idempotence znamená, že opakované provedení stejného požadavku povede ke stejnému konečnému stavu systému jako provedení jednou. Týká se to pouze vedlejších efektů na serveru. Odpovědi serveru se mohou lišit (například první požadavek DELETE může vrátit 200 OK, následující — 404 Not Found).

Příklady neidempotentních operací:

  • Opakované přidávání zboží do košíku pomocí POST.
  • Zvyšování čítače pomocí POST nebo PATCH.

Příklady idempotentních operací:

  • Opakované získávání dat pomocí GET.
  • Vytvoření nebo aktualizace uživatele s konkrétním ID pomocí PUT.
  • Smazání uživatele s konkrétním ID pomocí DELETE.

Idempotence je důležitá při nutnosti opětovného odeslání požadavků (například při selhání sítě). Server může bezpečně opakovaně provádět idempotentní požadavek, aniž by způsobil nežádoucí změny.