Ответ
Да, HTTP-запрос может иметь пустое тело. Необходимость тела определяется методом запроса и спецификацией API.
По умолчанию:
- GET, HEAD, DELETE, OPTIONS — обычно не имеют тела. Серверы могут его игнорировать.
- POST, PUT, PATCH — могут иметь тело, но оно не всегда обязательно.
Пример POST-запроса с пустым телом и заголовком Content-Length: 0:
POST /api/v1/notifications/mark-all-read HTTP/1.1
Host: api.example.com
Authorization: Bearer <token>
Content-Type: application/json
Content-Length: 0
Это может быть валидным запросом для действия, не требующего передачи данных.
Критические моменты для тестирования:
- Спецификация API: Всегда сверяйтесь с документацией. Некоторые эндпоинты могут возвращать
400 Bad Requestпри пустом теле, если ожидают объект. - Заголовок
Content-Type: Если тело пустое, этот заголовок часто является избыточным и может быть опущен. - Семантика: Пустое тело
{}в JSON — это не пустое тело. Это валидный JSON-объект. Пустое тело — это полное отсутствие данных после заголовков.