Что такое идемпотентность? Какие HTTP-методы идемпотентны?

Идемпотентность — это свойство операции, при котором многократное выполнение этой операции даёт тот же результат, что и однократное выполнение.

Короткий ответ

Что ответить на собеседовании

Идемпотентность — это свойство операции, при котором многократное выполнение этой операции даёт тот же результат, что и однократное выполнение.

Подробный разбор

Ответ с пояснениями

Идемпотентность — это свойство операции, при котором многократное выполнение этой операции даёт тот же результат, что и однократное выполнение.

В контексте HTTP-методов:

  • GET — идемпотентен, так как запрос на получение ресурса не меняет состояние сервера, и повторные запросы возвращают один и тот же результат.
  • PUT — идемпотентен, потому что обновление ресурса с одними и теми же данными несколько раз подряд приводит к одному и тому же состоянию.
  • DELETE — идемпотентен, так как удаление ресурса несколько раз подряд не изменит результат после первого удаления (ресурс уже удалён).
  • POST — не идемпотентен, так как каждый запрос обычно создаёт новый ресурс или изменяет состояние сервера, и повторные запросы могут привести к разным результатам (например, создано несколько записей).

Пример:

PUT /users/123
{
  "name": "Иван"
}

Если выполнить этот запрос несколько раз, пользователь с id 123 будет иметь имя "Иван" — состояние не изменится после первого запроса.

Таким образом, идемпотентность важна для надёжности и предсказуемости API, особенно при повторных запросах из-за сбоев сети.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее