Назад к вопросам
Aston
Middle
3
Что такое идемпотентность HTTP-методов? Какие методы являются идемпотентными, а какие нет? В чём отличие PUT от PATCH?
Компании, где спрашивали
Ответ от нейросети
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 }обновит только возраст, не трогая имя.