Idempotent
en HTTP-metode er idempotent, hvis en identisk anmodning kan fremsættes en eller flere gange i træk med samme effekt, mens serveren efterlades i samme tilstand. Med andre ord bør en idempotent-metode ikke have nogen bivirkninger (undtagen at føre statistik). Implementeret korrekt, GET
HEAD
PUT
og DELETE
metoderne er idempotente, men ikke POST
metode. Alle sikre metoder er også idempotent.
for at være idempotent overvejes kun serverens faktiske back-end-tilstand, statuskoden, der returneres af hver anmodning, kan variere: det første opkald af en DELETE
vil sandsynligvis returnere en 200
, mens successive sandsynligvis vil returnere en 404
. En anden implikation af DELETE
at være idempotent er, at udviklere ikke bør implementere RESTful API ‘er med en slet sidste indtastningsfunktionalitet ved hjælp afDELETE
– metoden.
Bemærk, at idempotens af en metode ikke garanteres af serveren, og nogle applikationer kan forkert bryde idempotens-begrænsningen.
GET /pageX HTTP/1.1
er idempotent. Kaldet flere gange i træk får klienten de samme resultater:
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 kaldes flere gange, tilføjer det flere rækker:
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, selvom den returnerede statuskode kan ændre sig mellem anmodninger:
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