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

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

Ответ

Стандартный HTTP-ответ состоит из трёх основных частей:

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

    • HTTP/1.1 200 OK
    • Содержит версию протокола, код состояния и текстовую фразу к нему.
  2. Заголовки (Headers): Мета-информация о ответе.

    Content-Type: application/json; charset=utf-8
    Cache-Control: no-cache
    Server: nginx/1.18.0
    Content-Length: 127
  3. Тело ответа (Body): Необязательная часть, содержащая сами данные. Формат определяется заголовком Content-Type.

    • JSON (наиболее распространён для REST API):
      {
        "status": "success",
        "data": {
          "id": 42,
          "username": "john_doe"
        }
      }
    • HTML (для веб-страниц): <!DOCTYPE html><html>...
    • XML или plain text.

Ключевые коды состояния (Status Codes):

  • 2xx (Успех): 200 OK, 201 Created.
  • 3xx (Перенаправление): 301 Moved Permanently.
  • 4xx (Ошибка клиента): 400 Bad Request, 401 Unauthorized, 404 Not Found.
  • 5xx (Ошибка сервера): 500 Internal Server Error, 502 Bad Gateway.

При тестировании API необходимо проверять и код состояния, и тело ответа на соответствие контракту (спецификации, например, OpenAPI).