В каком разделе HTTP-ответа передаётся тело (body) с данными?

«В каком разделе HTTP-ответа передаётся тело (body) с данными?» — вопрос из категории Сети, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тело ответа (response body) передается в HTTP-сообщении после пустой строки, отделяющей заголовки (headers).

Структура HTTP-ответа:

HTTP/1.1 200 OK           ← Статусная строка
Content-Type: application/json ← Заголовки
Content-Length: 42
                           ← Пустая строка (разделитель)
{"message": "Success"}    ← Тело ответа (Body)

Ключевые моменты:

  • Назначение: Тело содержит полезные данные, запрошенные клиентом (HTML-страницу, JSON, файл и т.д.).
  • Заголовки, такие как Content-Type и Content-Length, описывают формат и размер тела.
  • Методы запроса: Тело ответа обычно присутствует при успешных запросах GET, POST, PUT. Ответы на HEAD и некоторые статусы (например, 204 No Content) тела не имеют.

Пример на Java (упрощенно):

// Сервер формирует ответ
String body = "{"data": 123}";
String response = "HTTP/1.1 200 OKrn" +
                  "Content-Type: application/jsonrn" +
                  "Content-Length: " + body.length() + "rn" +
                  "rn" + // Пустая строка - конец заголовков
                  body;      // Тело ответа