Что такое HTTP-заголовок User-Agent?

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

Ответ

User-Agent — это HTTP-заголовок, в котором клиент (браузер, мобильное приложение, бот) отправляет строку для идентификации себя серверу.

Структура строки User-Agent: Она обычно содержит информацию о:

  1. Браузере и его версии (Chrome, Firefox).
  2. Операционной системе (Windows, macOS, Android).
  3. Движке рендеринга (AppleWebKit, Gecko).

Пример для Chrome на Windows: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Основное применение:

  • Аналитика и логирование: Определение популярных браузеров и устройств у аудитории.
  • Адаптация контента: Сервер может отдавать разные версии HTML/CSS/JS для мобильных устройств или старых браузеров.
  • Безопасность: Базовое обнаружение и блокировка известных вредоносных ботов или скрейперов (хотя этот метод ненадежен, так как заголовок легко подделать).

Для тестирования:

  • Кросс-браузерное тестирование: Проверка корректного отображения сайта в разных браузерах.
  • Тестирование адаптивности: Эмуляция мобильных устройств через инструменты разработчика.
  • Тестирование API: Имитация запросов от разных клиентов.

Пример отправки кастомного User-Agent в Python (библиотека requests):

import requests

headers = {'User-Agent': 'MyTestBot/1.0 (+https://mybot.example.com)'}
response = requests.get('https://example.com', headers=headers)
print(response.text)