К списку
HTTP, REST и APIMiddleТехническое

В каких HTTP-запросах присутствует тело (Body)?

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

Тело запроса обычно содержится в HTTP-методах POST, PUT, PATCH и DELETE. Запросы GET как правило не имеют Body и используются только для получения данных.

Развёрнуто

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

Тело (Body) HTTP-запроса присутствует в методах POST, PUT, PATCH и DELETE, где передаются данные на сервер. Метод GET обычно не включает тело запроса, так как предназначен для получения информации.


Как это работает

В HTTP-протоколе тело запроса (Body) используется для передачи данных от клиента к серверу. Не все методы HTTP предусматривают наличие Body:

  • POST — отправляет данные для создания ресурса;
  • PUT — обновляет или заменяет ресурс целиком;
  • PATCH — частично обновляет ресурс;
  • DELETE — иногда содержит тело с дополнительной информацией, хотя чаще используется без него;
  • GET — предназначен для получения данных, обычно без тела, так как параметры передаются в URL.
Метод Наличие Body Назначение
POST Да Создание ресурса
PUT Да Полное обновление ресурса
PATCH Да Частичное обновление
DELETE Может быть Удаление ресурса (редко)
GET Нет Получение данных

Отсутствие тела в GET-запросах связано с семантикой метода и тем, что сервер ожидает только параметры в URL или заголовках.

Пример

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "Иван",
  "email": "ivan@example.com"
}

В этом примере метод POST содержит тело запроса с JSON-данными для создания пользователя.


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

  • Методы POST, PUT и PATCH обязательно могут содержать тело с данными.
  • Метод DELETE может иметь тело, но на практике это редкость и зависит от реализации.
  • Метод GET не должен содержать тело, иначе это может привести к непредсказуемому поведению.
  • Наличие тела влияет на обработку запросов сервером и на безопасность API.
  • Понимание семантики HTTP-методов важно для правильного тестирования API.

Тема: HTTP, REST и API | Уровень: middle