Какие методы HTTP существуют и что такое идемпотентность?
HTTP и HTTPS
Идемпотентный метод при повторном выполнении оставляет сервер в том же состоянии: GET, PUT, DELETE и HEAD идемпотентны, POST — нет; отсюда правила безопасных повторов запросов.
Основные методы
- GET — чтение ресурса; к тому же safe: не меняет состояние.
- POST — создание или операция; ни safe, ни идемпотентен: повтор создаст вторую сущность.
- PUT — полная замена ресурса по известному URI: повтор даёт то же состояние.
- PATCH — частичное обновление; идемпотентность формально не гарантирована.
- DELETE — удаление: повтор вернёт 404, но состояние сервера уже не меняется.
Почему это важно
- Клиенты и прокси вправе автоматически повторять идемпотентные запросы при таймаутах.
- Оплату и создание заказов делают через POST с заголовком-ключом идемпотентности (
Idempotency-Key), чтобы ретраи не дублировали операцию.
Коротко для собеседования
Идемпотентность отвечает на вопрос, можно ли безопасно повторить запрос: повтор PUT или DELETE не меняет итог, повтор POST создаст дубль. Поэтому GET никогда не должен менять состояние, а для платежей через POST нужен ключ идемпотентности.