Какой у вас опыт работы с HTTP-заголовками (Headers) при тестировании?

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

Ответ

Опыт включает тестирование и валидацию HTTP-заголовков на всех уровнях (клиент, сервер, прокси) при проверке API и веб-приложений.

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

  1. Функциональность: проверка обязательных заголовков (Content-Type, Authorization), условных запросов (If-Modified-Since).
  2. Безопасность: валидация заголовков безопасности (Content-Security-Policy, X-Content-Type-Options, Strict-Transport-Security).
  3. CORS: проверка заголовков Access-Control-Allow-Origin, Access-Control-Allow-Methods.
  4. Кэширование: анализ заголовков Cache-Control, ETag.

Пример автоматизированной проверки на Python (pytest + requests):

import requests

def test_api_headers():
    url = 'https://api.example.com/data'
    headers = {'Authorization': 'Bearer valid_token'}
    response = requests.get(url, headers=headers)

    # Проверка статуса и заголовков ответа
    assert response.status_code == 200
    assert 'application/json' in response.headers['Content-Type']
    assert 'X-Frame-Options' in response.headers  # Защита от кликджекинга