Sobes.tech
Назад к вопросам
Middle
9

Расскажи про идемпотентность в HTTP. Какие методы являются идемпотентными и что они делают?

Компании, где спрашивали
Perfomance lab

Ответ от нейросети

sobes.tech AI

Идемпотентность в HTTP означает, что повторное выполнение одного и того же запроса приводит к одному и тому же результату на сервере, без дополнительных побочных эффектов.

Идемпотентные методы HTTP:

  • GET — запрашивает данные, не изменяя состояние сервера. Повторные GET-запросы возвращают одинаковый результат.
  • PUT — обновляет или создаёт ресурс по указанному URI. Повторные PUT-запросы с одинаковыми данными не изменяют результат после первого.
  • DELETE — удаляет ресурс. Повторные DELETE-запросы к одному и тому же ресурсу после его удаления не изменяют состояние.
  • HEAD — как GET, но без тела ответа, идемпотентен.
  • OPTIONS — возвращает поддерживаемые методы, идемпотентен.

Неидемпотентный метод:

  • POST — обычно создаёт ресурсы или запускает операции с побочными эффектами. Повторные POST-запросы могут создавать дубликаты или изменять состояние.

Пример:

PUT /users/123 HTTP/1.1
Content-Type: application/json

{"name": "Alice"}

Повторный такой запрос обновит пользователя с id 123 одинаково, не создавая новых записей.

Идемпотентность важна для надёжности и повторного выполнения запросов без риска неконсистентности данных.