Что такое HTTP response (ответ)?

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

Ответ

HTTP response (ответ) — это сообщение, которое сервер отправляет клиенту в результате обработки HTTP-запроса. Ответ содержит статус выполнения, метаданные и, при наличии, запрошенные данные.

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

  1. Статус-строка (Status Line):
    • Код состояния (Status Code): Трехзначное число, указывающее на результат (например, 200 OK, 404 Not Found, 500 Internal Server Error).
    • Текстовая причина (Reason Phrase): Краткое описание кода.
  2. Заголовки (Headers): Метаданные ответа (например, Content-Type: application/json, Cache-Control: max-age=3600).
  3. Тело (Body): Основные данные ответа (HTML, JSON, XML, файл). Может отсутствовать (например, в ответе 204 No Content).

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 52
Date: Mon, 01 Jan 2024 12:00:00 GMT

{
  "id": 123,
  "name": "Alice",
  "email": "alice@example.com"
}

Ключевые аспекты для тестирования API:

  • Коды состояния: Соответствие ожидаемому коду для различных сценариев (успех, ошибка клиента 4xx, ошибка сервера 5xx).
  • Заголовки: Наличие и корректность критичных заголовков (Content-Type, Cache-Control).
  • Структура тела: Соответствие схеме (JSON Schema), типы данных, наличие обязательных полей.
  • Производительность: Время отклика (response time) должно укладываться в требования.
  • Безопасность: Наличие защитных заголовков (например, X-Content-Type-Options: nosniff).