Ответ
Идемпотентный HTTP-метод — это метод, многократное выполнение которого с одними и теми же данными приводит к одинаковому результату, как если бы он был выполнен один раз. Это свойство критично для надежности сетевых взаимодействий (например, автоматические повторы запросов).
Идемпотентные методы:
- GET — получение ресурса. Не изменяет состояние сервера.
- HEAD — аналогичен GET, но возвращает только заголовки.
- PUT — полное обновление ресурса. Повторные запросы с тем же телом не изменяют итоговое состояние.
- DELETE — удаление ресурса. После первого успешного удаления ресурс отсутствует, и последующие запросы не меняют это состояние.
- OPTIONS — получение информации о поддерживаемых методах.
Неидемпотентные методы:
- POST — создание ресурса. Каждый вызов обычно создает новый объект.
- PATCH — частичное обновление. Результат может зависеть от текущего состояния ресурса.
Пример идемпотентности PUT:
PUT /api/users/123 HTTP/1.1
Content-Type: application/json
{"name": "Alice", "email": "alice@example.com"}
Повторная отправка этого же запроса несколько раз оставит пользователя с ID 123 в том же состоянии (name: Alice, email: alice@example.com), что и после первого выполнения.