Что содержится в HTTP-заголовках (headers)?

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

Ответ

HTTP-заголовки — это метаданные в виде пар «ключ: значение», которые передаются в HTTP-запросе или ответе. Они управляют обработкой запроса, форматом данных, кешированием, аутентификацией и другими аспектами клиент-серверного взаимодействия.

Основные категории заголовков:

Категория Назначение Примеры заголовков
Заголовки запроса (Request Headers) Описывают запрашиваемый ресурс и предпочтения клиента. Host, User-Agent, Accept, Accept-Language, Authorization, Content-Type
Заголовки ответа (Response Headers) Содержат дополнительную информацию о сервере и ответе. Server, Set-Cookie, Content-Type, Cache-Control, Location (для редиректов)
Общие заголовки (General Headers) Применимы как к запросам, так и к ответам. Date, Connection, Cache-Control
Заголовки сущности (Entity Headers) Описывают содержимое тела сообщения (body). Content-Length, Content-Type, Content-Encoding

Практический пример HTTP-запроса с заголовками:

GET /api/products/123 HTTP/1.1
Host: store.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Accept: application/json
Accept-Language: en-US,en;q=0.9
Authorization: Bearer xyz789

Практический пример HTTP-ответа с заголовками:

HTTP/1.1 200 OK
Date: Mon, 23 Mar 2023 10:00:00 GMT
Server: nginx/1.18.0
Content-Type: application/json; charset=utf-8
Content-Length: 85
Cache-Control: max-age=3600

{"id": 123, "name": "Laptop", "price": 999.99}

Зачем это нужно QA-инженеру?

  • Тестирование API: Проверка корректности отправляемых и получаемых заголовков.
  • Отладка: Анализ заголовков в инструментах (DevTools, Postman, Fiddler) для поиска причин ошибок.
  • Проверка безопасности: Контроль наличия заголовков типа Content-Security-Policy или отсутствия лишней информации в Server.