Проверяет понимание семантики HTTP-методов POST и PUT и их влияния на идемпотентность и проектирование REST API.
POST и PUT — оба используются для передачи данных на сервер, но отличаются семантикой и гарантиями. Ключевое различие — идемпотентность: PUT можно вызывать многократно с одинаковым телом, и состояние ресурса не изменится после первого вызова, а POST при каждом вызове создаёт новый ресурс или выполняет новое действие.
POST /users, и сервер сам решает, какой идентификатор присвоить новому ресурсу.PUT /users/42, и клиент заранее знает URL. Тело запроса полностью заменяет текущее представление ресурса.// POST — создание нового пользователя
POST /users
{ "name": "Alice" }
// Ответ: 201 Created, Location: /users/42
// PUT — полная замена пользователя 42
PUT /users/42
{ "name": "Alice", "age": 30 }
// Ответ: 200 OK или 204 No Content
// Повторный PUT с тем же телом — тот же результат (идемпотентно)
// Повторный POST — создаст ещё одного пользователя (не идемпотентно)Для частичного обновления существует PATCH: он меняет только переданные поля, тогда как PUT требует передать полное представление ресурса. Если отправить PUT с неполным телом, отсутствующие поля могут быть обнулены.
Используйте POST для создания ресурсов и небезопасных действий, PUT — для полной замены ресурса по известному URL, когда важна идемпотентность (например, при повторных запросах из-за сетевых сбоев).
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию