User Agent: что это и зачем он нужен

Способ рассказать серверу о пользователе

User Agent: что это и зачем он нужен

Когда вы заходите на сайт, браузер не просто грузит страницу — сначала он представляется серверу. Сообщает, кто он такой, на чём работает и с какого устройства пришёл. Это и есть User Agent — строка, которая отправляется вместе с каждым HTTP-запросом и даёт серверу понять, с кем тот имеет дело.

В этой статье разберём, зачем вообще нужен User Agent, как он работает и почему о нём стоит знать каждому, кто имеет дело с вебом — от фронтендера до безопасника.

Что такое User Agent?

Когда веб только начинал становиться «вебом», браузеров было две с половиной штуки и каждый отображал страницы по-своему. Тогда сайты часто ломались, потому что не понимали, кто к ним пришёл: Netscape или Internet Explorer.

Тогда разработчики решили добавить в HTTP-запросы специальную строку — User-Agent. Так сервера смогли определять, кто именно к ним стучится, и на основании этого решали, какую версию страницы выдать, чтобы сайт не развалился.

На тот момент главным браузером был Netscape, в User-Agent он писал Mozilla/2.0. Тогда многие сайты в коде просто проверяли:

if (userAgent.includes("Mozilla")) {
    // Показываем нормальную версию
} else {
    // Упрощённую, чтоб не сломалось
}

И вот чтобы не остаться за бортом, все браузеры стали прикидываться Mozilla и писать эту строчку у себя в User-Agent. С тех пор так и пошло: теперь почти каждый User Agent начинается с Mozilla/5.0, даже если это вообще не Mozilla, а Chrome.

Полезный блок со скидкой

Если вам интересно разбираться со смартфонами, компьютерами и прочими гаджетами и вы хотите научиться создавать софт под них с нуля или тестировать то, что сделали другие, — держите промокод Практикума на любой платный курс: KOD (можно просто на него нажать). Он даст скидку при покупке и позволит сэкономить на обучении.

Бесплатные курсы в Практикуме тоже есть — по всем специальностям и направлениям, начать можно в любой момент, карту привязывать не нужно, если что.

Простое определение для новичков

User Agent — это «визитка», которую ваш браузер протягивает каждому сайту, когда вы к нему обращаетесь. Там написано, каким браузером вы пользуетесь, на какой операционке сидите и с какого устройства зашли — с телефона, планшета или ПК.

Примерно так сайт узнаёт, нужно ли грузить мобильную версию, можно ли включить анимации или стоит выдать упрощённую версию страницы. Так работает любой браузер — Chrome, Safari, Firefox, Opera, даже встроенные в Smart TV или холодильник. Все они говорят серверу, кто они, откуда и с чем пришли.

Техническое объяснение (HTTP-заголовки)

Теперь копнём глубже. Когда вы заходите на сайт, браузер отправляет HTTP-запрос. И вместе с ним — набор заголовков, которые сообщают серверу контекст: кто вы, откуда, с чем пришли. Один из этих заголовков как раз и называется User-Agent.

Это обычная строка, например:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36

Заголовок User-Agent не обязателен, но почти всегда присутствует — его автоматически добавляет браузер или HTTP-клиент (например, curl, Postman, библиотеки типа axios).

User Agent: что это и зачем он нужен

Сервер, получив запрос с таким заголовком, может на его основе принять решение: показать полную версию сайта, мобильную или вообще сказать 403 Forbidden, если, например, User Agent выглядит как бот или подозрительный скрипт.

Как выглядит User Agent?

Стандартная структура строки

Единого стандарта нет, но чаще всего User Agent строится по такому шаблону:

User-Agent: <product>/<version> (<комментарии>)

Как уже было сказано, по исторически сложившимся причинам почти все браузеры начинают строку с Mozilla/5.0.

Дальше в строке идёт системная информация: операционная система, архитектура, модель устройства. После этого идут детали движка (WebKit, Gecko), название браузера и его версия. Иногда есть дополнения вроде Safari или Edge, чтобы пройти проверки на других сайтах и получить «пропуск».

В итоге получается длинная строка, в которой много лишнего, — но именно она помогает серверу понять, какую версию сайта отобразить.

Разбор компонентов на примере

Разберём конкретный пример:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

И что мы тут видим?

  • Mozilla/5.0 — практически всегда строка UA будет начинаться так.
  • (Windows NT 10.0; Win64; x64) — операционная система: Windows, 64-битная.
  • AppleWebKit/537.36 — движок рендеринга WebKit (используется и в Safari, и в Chrome).
  • KHTML, like Gecko — указание на совместимость с движком Gecko (используется в Firefox). Тоже исторически сложившийся параметр: WebKit произошёл от KHTML, а сайты долгое время затачивались под Gecko.
  • Chrome/124.0.0.0 — собственно, браузер и его версия.
  • Safari/537.36 — здесь браузер Хром прикидывается ещё и Safari. Всё это нужно, чтобы сайты нормально его принимали и показывали не урезанную версию.

Сервер читает эту строку, видит знакомые ключевые слова — и выдаёт контент. Для фронтендера вся эта информация может быть полезна при работе над адаптивностью, для бэкендера — при логировании и фильтрации, для безопасника — при определении подозрительных клиентов.

Для чего нужен User Agent?

По сути, User Agent — это один из первых сигналов, который сервер получает о клиенте. И хотя полагаться на него вслепую не лучшая идея, многие системы по-прежнему активно его используют. Дальше рассмотрим основные кейсы.

Определение устройства и браузера

Как мы уже видели, по User Agent можно определить тип устройства — десктоп, смартфон, планшет, телевизор, — операционную систему и её версию, браузер и его движок, а иногда и конкретную модель устройства. Это удобно для базовой аналитики, сбора статистики, отображения кастомных баннеров, трекинга и отладки.

Некоторые платформы (особенно старые CMS и SaaS) даже показывают разные дизайны сайта в зависимости от браузера — чтобы, например, убрать сложные анимации для IE или упростить UI на старых Android.

Адаптивная вёрстка под разные устройства

Да, в идеале всё должно работать через медиазапросы в CSS и отзывчивый дизайн. Но на практике всё может быть сложнее. Например, мобильные версии страниц иногда отдаются как отдельные HTML-шаблоны, в API могут быть разные ответы для мобильных и десктопных клиентов, а некоторые скрипты или стили не подключаются, если клиент определён как «мобильный».

На старых сайтах бывает ещё веселее: мобильная версия — это, условно, поддомен m.site.com, который включается, только если в User Agent есть слово Mobile.

Поэтому знание UA всё ещё используется — особенно если проект живёт уже лет десять и поддерживает парк устройств от кнопочных телефонов до умных гаджетов.

Блокировка ботов и скрейпинга

Сервер может смотреть на User Agent и фильтровать:

  • известных ботов (Googlebot, Bingbot, YandexBot);
  • подозрительные парсеры;
  • явно фальшивые строки (User-Agent: evilscript/666).

Это помогает ограничивать скрейпинг, защищать формы от автоматической отправки или отсекать слишком «наглые» сканеры.

Например, на этой картинке Cloudflare заблочил доступ из-за browser signature — сигнатура браузера показалась подозрительной. Всё потому, что в User Agent указан java-клиент вместо браузера и сайт решил, что это бот:

User Agent: что это и зачем он нужен

Но есть нюанс: User Agent легко подменяется. И если кто-то хочет скрейпить ваш сайт, он просто напишет в запросе User Agent: Mozilla/5.0 — и пройдёт почти все фильтры. Поэтому фильтрация по UA — это скорее первый барьер, чем полноценная защита. Его комбинируют с проверкой IP, ограничением скорости запросов, поведенческими паттернами и другими антибот-системами.

Где используется User Agent?

User Agent может показаться устаревшим инструментом, но на практике его до сих пор активно используют в самых разных системах — от аналитики до автотестов. Дальше разберём три сферы, где он реально работает и приносит пользу.

В веб-аналитике (Google Analytics)

Большинство аналитических систем собирают User Agent автоматически. Он помогает определить не только браузер, ОС и тип устройства, но и косвенно географию (через сопоставление UA и IP).

Google Analytics, Яндекс Метрика, Matomo и другие движки используют UA для построения сводок: какие браузеры используют ваши пользователи, какие устройства преобладают, есть ли проблемы с устаревшими системами. Например, по такой аналитике можно принять решение, «не пора ли сворачивать поддержку IE11».

User Agent: что это и зачем он нужен
В аналитике можно прикрутить User Agent как дополнительную метрику и посмотреть, кто реально приходил на сайт. Интерфейс Google Analytics

При кросс-браузерном тестировании

В тестировании интерфейсов важно понимать, как сайт ведёт себя в разных браузерах и на разных устройствах. User Agent — это часть входных данных при автоматизации тестов.

В автоматизированных тестах (на Playwright, Puppeteer, Selenium) часто задают кастомный User Agent — чтобы эмулировать поведение Chrome на Android, Safari на iOS или, например, устаревшего Firefox. Это помогает выявить баги, которые проявляются только в определённых условиях.

Также тестируют поведение на уровне:

  • редиректов — например, уходит ли пользователь на m.site.com, если у него мобильный UA;
  • загрузки кук, скриптов и стилей — не блокирует ли что-то JavaScript при подозрительном User Agent;
  • персонализации контента — выдаётся ли нужная версия интерфейса под конкретное устройство.

А для ручных проверок используют DevTools или расширения для подмены User Agent — чтобы быстро проверить, как сайт реагирует на разные браузеры и платформы.

В парсинге и автоматизации

Когда вы пишете парсер, бот или любой автоматизированный клиент, первым делом приходится подделывать User Agent. Без этого большинство сайтов либо покажут вам заглушку, либо сразу отрубят доступ.

Зачем это делают:

  • Чтобы не выдать себя как скрипт. Например, curl, python-requests и прочие HTTP-клиенты по умолчанию шлют честный, но подозрительный User-Agent вроде python-requests/2.31.0. Любой сайт поймёт, что это не человек, и может закрыть доступ.
  • Чтобы получить полноценный HTML, а не заглушку «Включите JavaScript».
  • Чтобы обойти защиту на уровне CDN (Content Delivery Network, например Cloudflare) или WAF (Web Application Firewall). Они фильтруют подозрительный трафик, режут по заголовкам и User Agent — и если он выглядит как бот, доступ блокируют.

В реальной практике почти все скрипты используют реалистичный User Agent, чаще всего от десктопного Chrome или Safari. Это повышает шансы пройти через фильтры и получить нужный контент.

Но важно понимать: User Agent — это не защита. Он легко подменяется, и это же делает его уязвимым. Но если его не указать вовсе, многие серверы сразу вас забанят.

Кстати, вот примеры типичных User Agent не от браузеров, а от ботов и инструментов:

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
curl/7.64.1
PostmanRuntime/7.26.5

Если вы пишете сервер, по таким строкам можно выявлять сканеры, API-клиенты и автоматические инструменты. Например, отдавать им другой контент, логировать отдельно или просто блокировать.

Как узнать свой User Agent?

User Agent уходит в каждом HTTP-запросе, но, чтобы его увидеть, нужно воспользоваться специальным инструментом.

Специальные сайты (whatismybrowser.com)

Проще всего открыть один из сервисов, который показывает ваш текущий User Agent:

User Agent: что это и зачем он нужен

Они сразу выведут строку, которую ваш браузер отправляет в заголовке User Agent. Можно скопировать, протестировать или вставить в автотесты.

Через JavaScript

Если вы находитесь внутри браузера и хотите получить User Agent программно — используйте в консоли команду navigator.userAgent:

User Agent: что это и зачем он нужен

Сейчас также доступны новые свойства:

navigator.userAgentData

Они дают более структурированную информацию, но поддерживаются не везде.

User Agent: что это и зачем он нужен

В инструментах разработчика

В любом современном браузере можно увидеть свой User Agent прямо в DevTools:

  • Chrome / Edge / Opera
    Откройте DevTools → вкладка «Сеть» (Network) → выберите любой запрос → вкладка «Заголовки» (Headers) → строка User-Agent в разделе «Заголовки запросов» (Request Headers)

User Agent: что это и зачем он нужен
  • Firefox
    DevTools → вкладка Сеть → клик на запрос → Заголовки → User-Agent.

User Agent: что это и зачем он нужен
  • Safari
    Включите меню разработчика в настройках → DevTools → вкладка «Сеть» (Network) → выберите запрос → «Заголовки» (Headers) → User-Agent.

User Agent: что это и зачем он нужен

Это самый точный способ, потому что там видна именно та строка, которую браузер реально отправил серверу — без каких-либо интерпретаций.

Проблемы и подмена User Agent

User Agent — одно из самых ненадёжных полей в запросе. Его за секунду можно переписать, прикинуться кем угодно и обойти кучу защит. Поэтому всё, что построено только на UA, — потенциальная точка отказа.

Зачем подменяют User Agent

User Agent подменяют не только разработчики и тестировщики — этим активно пользуются и злоумышленники. Причина простая: UA — это первая строка, по которой сервер может заподозрить неладное, а значит, если притвориться «обычным пользователем», то можно пройти мимо фильтров.

Что даёт подделка:

  • Обход антибот-защиты. Сайт обрубает curl, scrapy, python-requests? Меняем UA на Chrome или Safari — и получаем полноценный ответ.
  • Сокрытие реальной среды. Злоумышленник может работать с Tor, headless-браузером, фреймворком автоматизации, но выдавать себя за обычный десктоп.
  • Получение «нормального» контента. Некоторые сайты подсовывают заглушку или редирект, если UA выглядит подозрительно. Подмена даёт доступ к настоящей версии страницы.
  • Фарминг/фрод. В рекламных и антиспам-системах UA подделывают, чтобы пройти фильтрацию, прикинуться новым устройством или обойти ограничения по поведенческому анализу.

Именно поэтому User Agent — это слабое звено, если его использовать для серьёзной верификации.

Как изменить в Chrome/Firefox

В Chrome:

1. Открываем DevTools (F12 или Ctrl+Shift+I)
2. Нажимаем на три точки в правом верхнем углу → «Другие инструменты» → «Условия работы сети»

    User Agent: что это и зачем он нужен

    3. Снимаем галку «Использовать настройки браузера по умолчанию» и выбираем нужный User Agent. Если нужного агента не существует, можно ввести любую строку в поле.

    User Agent: что это и зачем он нужен

    В Firefox:

      1.Переходим на страницу настроек: в адресной строке вводим about:config|
      2. Появится страшная страница с предупреждением. Нажимаем кнопку «Принять риск и продолжить».
      3. Вверху будет строка поиска — вводим туда useragent

      User Agent: что это и зачем он нужен

      4. В выпадающем списке ищем параметр general.useragent.override — именно он подменяет UA. Если такая строка уже есть, нужно её удалить и создать новую, чтобы вписать нужные значения User Agent:

      User Agent: что это и зачем он нужен

      А если не хочется не лезть в конфиги, есть браузерные расширения для этих целей: User-Agent Switcher and Manager и User-Agent Switcher for Chrome.

      Ограничения подмены

      User-Agent не даёт надёжной информации о клиенте — и сайты это прекрасно знают. Поэтому, если вы решили прикинуться другим устройством или браузером, стоит учитывать несколько нюансов.

      Во-первых, сайты смотрят не только на UA. Они могут анализировать разрешение экрана, поведение курсора, наличие сенсорного ввода, даже частоту кадров анимации. И если вы заявляете, что вы iPhone, но у вас 1920 × 1080 и мышь — это вызывает подозрения.

      Во-вторых, современные сайты (особенно SPA) используют JavaScript-детекторы, которым вообще не важно, что написано в строке User Agent. Они смотрят на window.navigator, devicePixelRatio, список поддерживаемых API — и могут точно определить, кто вы и откуда.

      Подделка также может сломать функциональность. Например, вы выдаёте себя за Safari на iOS, но ваш браузер не поддерживает нужный WebKit-API — и страница просто не работает как надо.

      И наконец, если User Agent не совпадает с остальными признаками клиента, вы можете выглядеть подозрительно. Это уже сигнал для антибот-систем, которые настроены не на строку, а на поведение.

      Всё это приводит к главному выводу: определять контент по User Agent — плохая идея. Он легко подделывается, не всегда даёт достоверную информацию и может только навредить, если на него опирается бизнес-логика сайта.

      Вместо этого лучше использовать:

      • обнаружение признаков (feature detection) — определять, поддерживает ли браузер нужную фичу (например, через Modernizr).
      • медиазапросы — для адаптивной вёрстки под разные размеры экрана.
      • прогрессивное улучшение (progressive enhancement) — строить интерфейс от базового к продвинутому, в зависимости от возможностей клиента.

      Бонус для читателей

      Если вам интересно погрузиться в мир ИТ и при этом немного сэкономить, держите наш промокод на курсы Практикума. Он даст вам скидку при оплате, поможет с льготной ипотекой и даст безлимит на маркетплейсах. Ладно, окей, это просто скидка, без остального, но хорошая. 

      Вам слово

      Приходите к нам в соцсети поделиться своим мнением о браузерах и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте — шпаргалки, опросы и разная дурка. В общем, вот тележка, вот ВК — велком!

      Обложка:

      Алексей Сухов

      Корректор:

      Александр Зубов

      Вёрстка:

      Егор Степанов

      Соцсети:

      Юлия Зубарева

      Вам может быть интересно
      easy