Sobes.tech
Middle

Vai visi HTTP metodes ir idempotenti?

sobes.tech AI

Atbilde no AI

Nē, ne visi HTTP metodes ir idempotenti.

Idempotence nozīmē, ka, ja vienu un to pašu pieprasījumu izpilda vairākas reizes ar tiem pašiem parametriem, servera pusē rezultāts nemainīsies pēc pirmās veiksmīgās izpildes.

Galvenās HTTP metodes un to idempotence:

Metode Ir idempotenta Mērķis
GET Datu iegūšana
HEAD Atbildes galvgalu iegūšana
PUT Resursa izveide vai pilnīga aizvietošana
DELETE Resursa dzēšana
POST Datu sūtīšana resursa izveidei vai darbības veikšanai
PATCH Resursa daļēja atjaunošana

POST un PATCH nav idempotenti, jo katra to izpilde var novest pie jauna resursa izveides vai stāvokļa izmaiņām atkarībā no realizācijas, kas nav vienādas pēc pirmās veiksmīgās izpildes. Piemēram, vairākkārtēja POST pieprasījuma izpilde resursa izveidei parasti novedīs pie vairāku lietotāju izveides.

Neidempotenta POST piemērs:

{
  "username": "testuser"
}

Šāda POST pieprasījuma sūtīšana var izveidot jaunu lietotāju ar username: "testuser" katru reizi.

Idempotenta PUT piemērs:

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

Šāda PUT pieprasījuma sūtīšana resursam ar ID 123 iestatīs tā statusu uz "completed". Atkārtota izpilde nemainīs statusu, ja tas jau ir "completed".