Ответ
Да, может. Спецификация HTTP явно допускает ответы без тела.
Типичные сценарии:
-
Ответы с информационными статусами:
204 No Content— успешный запрос, но возвращать данные не нужно (например, после DELETE).304 Not Modified— ответ на условный GET, указывающий, что ресурс не изменился (тело не пересылается).
-
Ответ на HEAD-запрос: Метод HEAD идентичен GET, но сервер никогда не возвращает тело сообщения, только заголовки.
Пример ответа 204 No Content:
HTTP/1.1 204 No Content
Date: Mon, 01 Jan 2024 12:00:00 GMT
Server: Apache
Cache-Control: no-cache
Важно для тестирования API:
- Не ожидайте тело (body) в ответах со статусами
1xx,204,304. - При обработке таких ответов в коде (например, с
response.json()) может возникнуть ошибка парсинга. Нужно проверять статус и заголовокContent-Length.