Sobes.tech
Middle

Povedzte o metódach HTTP a ich idempotentnosti.

sobes.tech AI

Odpoveď od AI

Metódy HTTP určujú akciu, ktorú chce klient vykonať na zdroji. Hlavné metódy:

  • GET: Získať zdroj. Je idempotentný (opakované požiadavky nemenia stav na serveri).
  • POST: Odoslať údaje na spracovanie (napríklad, vytvoriť nový zdroj, odoslať údaje formulára). Zvyčajne nie je idempotentný.
  • PUT: Vytvoriť alebo aktualizovať zdroj na zadanom URI. Je idempotentný (opakovaná požiadavka s rovnakými údajmi povedie k rovnakému stave zdroja).
  • DELETE: Vymazať zdroj na zadanom URI. Je idempotentný (po prvom úspešnom požiadavke, opakované požiadavky nezmenia stav zdroja, pretože je už vymazaný).
  • PATCH: Čiastočne zmeniť zdroj. Zvyčajne nie je idempotentný, pretože poradie operácií môže byť dôležité.
  • HEAD: Získať hlavičky odpovede GET bez tela odpovede. Je idempotentný.
  • OPTIONS: Získať zoznam podporovaných metód pre zdroj. Je idempotentný.

Idempotentnosť znamená, že opakované vykonanie rovnakej požiadavky povedie k rovnakému konečnému stavu systému ako jej vykonanie raz. Toto platí len pre vedľajšie účinky na serveri. Odpovede servera sa môžu líšiť (napríklad, prvá požiadavka DELETE môže vrátiť 200 OK, ďalšie — 404 Not Found).

Príklady neidempotentných operácií:

  • Opakované pridávanie tovaru do košíka pomocou POST.
  • Zvýšenie čítača pomocou POST alebo PATCH.

Príklady idempotentných operácií:

  • Opakované získavanie dát pomocou GET.
  • Vytvorenie alebo aktualizácia používateľa s konkrétnym ID pomocou PUT.
  • Vymazanie používateľa s konkrétnym ID pomocou DELETE.

Idempotentnosť je dôležitá pri potrebe opätovného odoslania požiadaviek (napríklad pri sieťových chybách). Server môže bezpečne vykonať idempotentnú požiadavku viackrát bez spôsobenia neželaných zmien.