Какова структура стандартного HTTP-ответа?

Ответ

Стандартный HTTP-ответ, который сервер отправляет клиенту, состоит из трех основных компонентов, разделенных специальными символами возврата каретки и перевода строки (CRLF).

1. Стартовая строка (Status Line)

Содержит результат обработки запроса и состоит из трех частей:

  • Версия протокола: Например, HTTP/1.1 или HTTP/2.
  • Код состояния (Status Code): Числовой код, отражающий результат (e.g., 200, 404, 500).
  • Пояснение (Reason Phrase): Краткое текстовое описание кода (e.g., OK, Not Found).

Пример: HTTP/1.1 200 OK

2. Заголовки (Headers)

Пары ключ: значение, которые передают метаинформацию об ответе и его теле. Ключевые заголовки:

  • Content-Type: MIME-тип ресурса в теле ответа (e.g., application/json, text/html).
  • Content-Length: Размер тела ответа в байтах.
  • Cache-Control: Инструкции по кэшированию ответа браузером или прокси-сервером.
  • Set-Cookie: Устанавливает cookie на стороне клиента.

3. Тело ответа (Message Body)

Необязательная часть, содержащая сам ресурс (HTML-страница, JSON-объект, изображение). Отделяется от заголовков одной пустой строкой (CRLF).

Пример полного HTTP-ответа с JSON-телом:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 38
Date: Mon, 23 Oct 2023 10:00:00 GMT
Connection: keep-alive

{
  "userId": 1,
  "status": "active"
}