Что такое идемпотентность (idempotence) в контексте веб-методов? Какие HTTP-методы являются идемпотентными?
Уровень: Middle
Ответ
Идемпотентность операции означает, что повторное выполнение этой операции приводит к тому же результату, что и однократное. В контексте HTTP к идемпотентным относятся методы, которые можно вызывать много раз подряд без дополнительных побочных эффектов. Например, GET — идемпотентный (несколько одинаковых GET-запросов просто возвращают один и тот же ресурс и не меняют его), PUT — тоже (повторная замена ресурса теми же данными не изменит результата), DELETE обычно считается идемпотентным (удаление уже удалённого ресурса не изменит состояние). Метод POST не является идемпотентным, так как повторная отправка формы может привести к созданию дублирующего ресурса или действия. Идемпотентность важна, например, для механизмов повтора запросов — повтор идемпотентного запроса безопасен.