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

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

Ответ

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

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

    • В запросе: Метод URI Версия_HTTP (например, GET /index.html HTTP/1.1).
    • В ответе: Версия_HTTP Код_статуса Пояснение (например, HTTP/1.1 200 OK).
  2. Заголовки (Headers)

    • Набор пар ключ: значение, описывающих сообщение (метаданные, кодировка, кеширование и т.д.).
    • Примеры: Content-Type: application/json, Cache-Control: no-cache.
  3. Тело сообщения (Message Body)

    • Опциональная часть, содержащая данные, связанные с запросом (например, тело POST) или ответом (например, HTML-страницу).
    • От заголовков отделяется пустой строкой.

Пример HTTP-запроса:

GET /api/data HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: application/json

Пример HTTP-ответа:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 29
Date: Mon, 27 Jan 2025 10:00:00 GMT

{"status": "success", "id": 42}