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

Что такое идемпотентность HTTP-методов? Какие методы являются идемпотентными, а какие нет? В чём отличие PUT от PATCH?

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

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

sobes.tech AI

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

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

  • GET — получение данных, не изменяет состояние.
  • PUT — замена ресурса целиком.
  • DELETE — удаление ресурса.
  • HEAD, OPTIONS, TRACE — обычно тоже идемпотентны.

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

  • POST — создание ресурса, каждый вызов может создавать новый объект.
  • PATCH — частичное обновление ресурса, может иметь разные эффекты при повторении.

Отличие PUT от PATCH:

  • PUT заменяет весь ресурс новым представлением. Если поле не указано, оно обычно сбрасывается.
  • PATCH изменяет только указанные поля, оставляя остальные без изменений.

Пример:

  • PUT /user/1 с телом { "name": "John", "age": 30 } заменит весь профиль пользователя.
  • PATCH /user/1 с телом { "age": 31 } обновит только возраст, не трогая имя.