Проверяет понимание правил работы HTTP и свойств операций на сервере.
Метод считается идемпотентным, если повторный вызов приводит к тому же результату, что и первый. Например, PUT и DELETE остаются безопасными при повторной отправке, потому что состояние ресурса после них не меняется. POST обычно не идемпотентен, потому что каждый вызов создаёт новый ресурс. Идемпотентность зависит от серверной логики, а не только от названия метода.
Идемпотентность — свойство операции давать один и тот же результат при повторном выполнении.
GET — идемпотентен (чтение данных не меняет их).
PUT — идемпотентен (повторная замена ресурса приводит к тому же состоянию).
DELETE — идемпотентен (удалённый ресурс остаётся удалённым).
POST — не идемпотентен (каждый вызов создаёт что-то новое).
PATCH — зависит от реализации (может быть, может нет).
Если повторный запрос не изменяет состояние ресурса, метод идемпотентен.
python
# DELETE /users/1
# Второй вызов ничего не меняет — ресурс уже удалён.
Идемпотентные методы позволяют безопасно повторять запросы, что важно для сетей, прокси и повторных попыток при ошибках.