Из каких основных частей состоит HTTP-ответ сервера?

«Из каких основных частей состоит HTTP-ответ сервера?» — вопрос из категории HTTP и веб-протоколы, который задают на 23% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP-ответ сервера состоит из трёх обязательных частей:

  1. Строка статуса (Status Line):

    • Версия протокола (например, HTTP/1.1).
    • Код состояния (Status Code): Трёхзначное число, указывающее на результат запроса (например, 200, 404, 500).
    • Пояснение к коду (Reason Phrase): Краткое текстовое описание кода (например, OK, Not Found).
  2. Заголовки (Headers): Метаданные ответа в формате ключ: значение. Определяют параметры тела ответа, настройки кэширования, сервер и др.

    • Content-Type: application/json — тип данных в теле.
    • Content-Length: 42 — размер тела в байтах.
    • Server: nginx/1.18.0 — информация о сервере.
    • Set-Cookie: sessionId=abc123 — установка cookie.
  3. Тело ответа (Body): Необязательная часть, содержащая фактические данные, запрошенные клиентом (HTML-страницу, JSON, XML, файл и т.д.). Отсутствует у ответов с кодом 204 No Content.

Пример полного ответа (JSON):

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 42
Cache-Control: no-cache
Server: MyAPI/1.0

{"status": "success", "data": {"id": 123}}