Idempotent
egy HTTP módszer idempotent, ha egy azonos kérés egyszer vagy többször egymás után is elvégezhető, ugyanolyan hatással, miközben a kiszolgálót ugyanabban az állapotban hagyja. Más szavakkal, az idempotens módszernek nem lehetnek mellékhatásai (kivéve a statisztikák megőrzését). Helyesen végrehajtva a GET
HEAD
PUT
és DELETE
módszerek idempotensek, de nem a módszer. Minden biztonságos módszer is idempotent.
ahhoz, hogy idempotent legyen, csak a kiszolgáló tényleges back-end állapotát kell figyelembe venni,az egyes kérések által visszaküldött állapotkód eltérhet: a DELETE
első hívása valószínűleg visszaadja a 200
, míg az egymást követő valószínűleg visszaadja a 404
. Egy másik következménye a DELETE
hogy idempotent, hogy a fejlesztők ne hajtsák végre RESTful API egy delete utolsó bejegyzés funkciót a DELETE
módszer.
vegye figyelembe, hogy egy módszer idempotenciáját a szerver nem garantálja, egyes alkalmazások helytelenül törhetik meg az idempotence korlátozást.
GET /pageX HTTP/1.1
is idempotent. Többször egymás után hívva az ügyfél ugyanazokat az eredményeket kapja:
GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1
POST /add_row HTTP/1.1
nem idempotens; ha többször hívják, akkor több sort ad hozzá:
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
idempotent, még akkor is, ha a visszaküldött állapotkód a kérések között változhat:
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