Sobes.tech
Middle

Kas kõik HTTP meetodid on idempotentsed?

sobes.tech AI

Vastus AI-lt

Ei, mitte kõik HTTP meetodid on idempotentsed.

Idempotentsus tähendab, et kui sama päringut tehakse mitu korda sama parameetritega, siis serveri poolne tulemus pärast esimest edukat täitmist ei muutu.

Peamised HTTP meetodid ja nende idempotentsus:

Meetod On idempotentne Otstarve
GET Jah Andmete saamine
HEAD Jah Vastuse päiste saamine
PUT Jah Ressursi loomine või täielik asendamine
DELETE Jah Ressursi kustutamine
POST Ei Andmete saatmine ressursi loomisele või tegevuse teostamiseks
PATCH Ei Ressursi osaline uuendamine

POST ja PATCH ei ole idempotentsed, kuna iga nende täitmine võib viia uue ressursi loomise või oleku muutmiseni sõltuvalt rakendusest, mis ei ole üheselt määratletud pärast esimest edukat täitmist. Näiteks võib korduv POST päring kasutaja loomise korral viia mitme kasutaja loomisele.

Näide mitte-idempotentne POST:

{
  "username": "testuser"
}

Sellise POST päringu saatmine võib iga kord luua uue kasutaja koos username: "testuser".

Näide idempotentne PUT:

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

Sellise PUT päringu saatmine ressursile ID-ga 123 määrab selle staatuse "completed". Korduv täitmine ei muuda staatust, kui see on juba "completed".