Какой HTTP-заголовок отвечает за авторизацию?

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

Ответ

Основным заголовком для передачи данных авторизации является Authorization. В контексте тестирования API мы постоянно работаем с ним для валидации защищенных эндпоинтов.

Наиболее распространенные схемы, с которыми я сталкивался:

  1. Bearer Token (OAuth 2.0, JWT): Стандарт для современных API.

    GET /api/user/profile HTTP/1.1
    Host: example.com
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

    В автотестах мы извлекали токен из ответа на запрос логина и подставляли его в последующие запросы.

  2. Basic Authentication: Часто используется для доступа к внутренним или staging-окружениям.

    Authorization: Basic dXNlcjE6c2VjcmV0UGFzc3dvcmQ=

    Где строка — это base64 кодировка username:password.

Другие заголовки, связанные с аутентификацией, которые важно проверять в тестах:

  • Cookie: Если используется сессия на основе кук. Мы проверяли их установку и валидность.
  • Пользовательские заголовки: Например, X-API-Key для простой аутентификации по ключу. В тестах мы проверяли как позитивные сценарии (валидный ключ), так и негативные (неверный/отсутствующий ключ, истекший ключ).