Articles

Idempotent

metoda HTTP jest idempotent, jeśli identyczne żądanie może być wykonane raz lub kilka razy z rzędu z tym samym efektem, pozostawiając serwer w tym samym stanie. Innymi słowy, metoda idempotentna nie powinna mieć żadnych skutków ubocznych (z wyjątkiem prowadzenia statystyk). Poprawnie zaimplementowane metody GETHEADPUT I DELETE są idempotentne, ale nie są POST. Wszystkie bezpieczne metody są również idempotentne.

aby być idempotentnym, brany jest pod uwagę tylko rzeczywisty stan serwera, kod stanu zwracany przez każde żądanie może się różnić: pierwsze wywołanie DELETEprawdopodobnie zwróci 200, podczas gdy kolejne prawdopodobnie zwrócą 404. Inną implikacją DELETE jest to, że programiści nie powinni implementować RESTful API z funkcją usuwania ostatniego wpisu przy użyciu metody DELETE.

zauważ, że idempotencja metody nie jest gwarantowana przez serwer i niektóre aplikacje mogą nieprawidłowo złamać ograniczenie idempotencja.

GET /pageX HTTP/1.1 jest idempotentem. Wywołany kilka razy z rzędu, klient otrzymuje takie same wyniki:

GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1

POST /add_row HTTP/1.1 nie jest idempotentny; jeśli zostanie wywołany kilka razy, doda kilka wierszy:

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 jest idempotentny, nawet jeśli zwracany kod statusu może się zmieniać między żądaniami:

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *