Idempotent
EN HTTP-metode er idempotent hvis en identisk forespørsel kan gjøres en eller flere ganger på rad med samme effekt mens du forlater serveren i samme tilstand. Med andre ord, en idempotent metode bør ikke ha noen bivirkninger (unntatt å holde statistikk). Implementert riktig, GET
HEAD
PUT
og DELETE
metodene er idempotente, men ikke POST
metode. Alle sikre metoder er også idempotent.
for å være idempotent, vil bare den faktiske back-end-tilstanden til serveren vurderes, statuskoden returnert av hver forespørsel kan variere: det første anropet til en DELETE
vil trolig returnere en 200
, mens etterfølgende vil trolig returnere en 404
. En annen implikasjon avDELETE
å være idempotent er at utviklere ikke bør implementere RESTful Apier med en slett siste oppføringsfunksjonalitet ved hjelp avDELETE
– metoden.
Merk at idempotence av en metode ikke er garantert av serveren, og noen programmer kan feilaktig bryte idempotence begrensningen.
GET /pageX HTTP/1.1
er idempotent. Kalt flere ganger på rad, får klienten de samme resultatene:
GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1
POST /add_row HTTP/1.1
er ikke idempotent; hvis det kalles flere ganger, legger det til flere rader:
POST /add_row HTTP/1.1POST /add_row HTTP/1.1 -> Adds a 2nd rowPOST /add_row HTTP/1.1 -> Adds a 3rd row
DELETE /idX/delete HTTP/1.1
er idempotent, selv om den returnerte statuskoden kan endres mellom forespørsler:
DELETE /idX/delete HTTP/1.1 -> Returns 200 if idX existsDELETE /idX/delete HTTP/1.1 -> Returns 404 as it just got deletedDELETE /idX/delete HTTP/1.1 -> Returns 404