Sobes.tech
Middle

Da li su svi HTTP metodi idempotentni?

sobes.tech АИ

Одговор од АИ

Не, не все HTTP metode nisu idempotentne.

Idempotentnost znači da ako izvršite isti zahtev više puta sa istim parametrima, rezultat na strani servera neće se promeniti nakon prve uspešne izvršene.

Glavne HTTP metode i njihova idempotentnost:

Metod Da li je idempotentan? Svrha
GET Da Dobijanje podataka
HEAD Da Dobijanje zaglavlja odgovora
PUT Da Kreiranje ili potpuna zamena resursa
DELETE Da Brisanje resursa
POST Ne Slanje podataka za kreiranje resursa ili izvršenje radnje
PATCH Ne Delimično ažuriranje resursa

POST i PATCH nisu idempotentni jer svako njihovo izvršenje može dovesti do kreiranja novog resursa ili promene stanja resursa u zavisnosti od implementacije, što nije jedinstveno nakon prve uspešne izvršene. Na primer, višestruko izvršavanje POST zahteva za kreiranje korisnika obično će dovesti do kreiranja više korisnika.

Primer neidempotentnog POST:

{
  "username": "testuser"
}

Slanje takvog POST zahteva može kreirati novog korisnika sa username: "testuser" pri svakom pozivu.

Primer idempotentnog PUT:

{
  "id": 123,
  "status": "completed"
}

Slanje takvog PUT na resurs sa ID-jem 123 postaviće njegov status na "completed". Ponavljanje neće promeniti status ako je već "completed".