Idempotentních
HTTP metoda je idempotentní, jestliže byla stejná žádost může být provedena jednou nebo několikrát za sebou se stejným účinkem při opuštění serveru ve stejném stavu. Jinými slovy, metoda idempotent by neměla mít žádné vedlejší účinky (s výjimkou vedení statistik). Provedena správně, GET
HEAD
PUT
DELETE
metody jsou idempotentní, ale není POST
metoda. Všechny bezpečné metody jsou také idempotentní.
být idempotentních, pouze skutečné back-end stavu serveru je považován za vrácený kód stavu tím, že každý požadavek se může lišit: první volání DELETE
budou pravděpodobně vrátit 200
, zatímco po sobě jdoucích jedniček bude pravděpodobně vrátí na 404
. Další implikace DELETE
být idempotentních je, že vývojáři by měli implementovat RESTful Api s odstranit poslední záznam funkce pomocí DELETE
metoda.
Všimněte si, že idempotence metody není serverem zaručena a některé aplikace mohou nesprávně přerušit omezení idempotence.
GET /pageX HTTP/1.1
je idempotentní. Volal několikrát za sebou, klient dostane stejné výsledky:
GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1
POST /add_row HTTP/1.1
není idempotentní, pokud je volána několikrát, přidá se několik řádků:
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
je idempotentních, i když se vrátil stavový kód se může změnit mezi požadavky:
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