На каком уровне работает протокол HTTP?

«На каком уровне работает протокол HTTP?» — вопрос из категории Сети, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Протокол HTTP (HyperText Transfer Protocol) работает на прикладном уровне (Application Layer, 7-й уровень) модели OSI и на соответствующем ему уровне приложений упрощенной модели TCP/IP.

Практическое значение для QA-инженера: Понимание этого уровня критично для:

  1. API-тестирования: Работа с методами (GET, POST, PUT, DELETE), заголовками (Headers), кодами состояния (Status Codes) и телом запроса/ответа (Body) — это и есть взаимодействие на прикладном уровне.
  2. Анализа проблем: Ошибки 4xx (например, 404, 400) и 5xx (500, 502) указывают на проблемы на уровне приложения или сервера, в то время как проблемы с установкой соединения (таймауты) обычно относятся к транспортному (TCP) или сетевому уровню.
  3. Работы с инструментами: Такие инструменты, как Postman, REST Assured или curl, являются клиентами прикладного уровня.

Пример HTTP-запроса (как его видит QA-инженер):

POST /api/v1/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer <token>

{
  "name": "John Doe",
  "email": "john@example.com"
}

HTTP полагается на нижележащие уровни: транспортный (TCP) обеспечивает надежную доставку пакетов, сетевой (IP) — маршрутизацию, а канальный и физический — непосредственную передачу битов.