Как работает user agent
Каждый запрос браузера содержит заголовок User-Agent: одну строку, где названы браузер, его движок и система, в которой он работает. Серверы используют её, чтобы выбрать мобильную вёрстку, вести журнал посещающих браузеров, распознавать ботов и обходить ошибки браузеров. Эта страница показывает заголовок точно в том виде, в котором он дошёл до сервера, и ту же строку, которую браузер отдаёт скриптам.
Строка полна истории: каждый браузер начинается с Mozilla/5.0, Chrome называет себя ещё и Safari, а Edge — Chrome. Сейчас браузеры замораживают её части, чтобы затруднить слежку, поэтому Windows 11 всё ещё называется Windows NT 10.0, Mac — 10.15.7, а Chrome на Android скрывает модель телефона. Эти части заменяют User-Agent Client Hints: поддерживающий их браузер по запросу сообщает настоящую версию платформы, модель и архитектуру. Эта страница спрашивает ваш браузер напрямую.
Разборщик на этой странице небольшой и работает в вашем браузере. Он сначала ищет известные краулеры и HTTP-инструменты (Googlebot, Bingbot, GPTBot, curl, Wget, python-requests и многие другие), затем браузеры на основе Chromium — до самого Chrome, а Chrome — до Safari, потому что в их строках встречаются названия друг друга. Строку бота может скопировать кто угодно, поэтому одно имя ничего не доказывает.
Пример
Эту строку отправляет Chrome 131 в 64-разрядной Windows:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36| Часть | Что это значит |
|---|---|
Mozilla/5.0 | Отправляется каждым браузером для совместимости с 1990-х годов. Сегодня ничего не означает. |
(Windows NT 10.0; Win64; x64) | Система: Windows NT 10.0, то есть Windows 10 или 11, 64-разрядная сборка на процессоре x64. |
AppleWebKit/537.36 (KHTML, like Gecko) | Токен движка, замороженный на одном значении с тех пор, как в 2013 году Chrome перешёл с WebKit на собственный движок Blink. |
Chrome/131.0.0.0 | Браузер и его основная версия. Остальные три числа в современной сокращённой строке всегда 0. |
Safari/537.36 | Ещё один токен совместимости, чтобы сайты, написанные для Safari, тоже работали. |
Поэтому разборщик читает её как Chrome 131 на движке Blink, Windows 10 или 11, компьютер с процессором x86-64. В этом же браузере Client Hints добавили бы версию платформы 13 или выше для Windows 11 и полную версию Chrome.
Вопросы
Что такое user agent?
User agent — это программа, которая выполняет веб-запрос за вас, обычно браузер. Она представляется в заголовке User-Agent строкой вроде Mozilla/5.0 (Windows NT 10.0; Win64; x64) … Chrome/131.0.0.0 Safari/537.36. Серверы читают её, чтобы выбрать вёрстку, считать браузеры в статистике и распознавать ботов. Ваша строка — вверху этой страницы.
Как изменить свой user agent?
В Chrome или Edge откройте DevTools, затем меню ⋮ → More tools → Network conditions, снимите флажок «Use browser default» и выберите или введите строку. В Firefox откройте about:config и добавьте строковую настройку general.useragent.override. В Safari включите меню Develop в Settings → Advanced, затем выберите Develop → User Agent. С curl используйте -A, например curl -A "MyBot/1.0" https://example.com. Перезагрузите эту страницу, чтобы увидеть изменение.
Почему в моём user agent написано Windows 10, хотя у меня Windows 11?
Браузеры так и не изменили строку для Windows 11: обе версии отправляют Windows NT 10.0. Chrome, Edge и Opera сообщают настоящую версию через Client Hints, где версия платформы 13 и выше означает Windows 11; эта страница читает её и показывает Windows 11. Firefox Client Hints не поддерживает, поэтому может сказать только «Windows 10 или 11».
Почему мой Mac показывает macOS 10.15.7?
Safari и Chrome заморозили версию macOS на 10.15.7, а Firefox — на 10.15, поэтому все более новые Mac отправляют именно её, с Apple silicon или Intel. Некоторые старые сайты ломались, когда версия переходила за 10, а фиксированное значение ещё и даёт трекерам меньше данных. Chrome, Edge и Opera сообщают настоящую версию через Client Hints, и эта страница показывает её, когда они доступны.
Как понять, что посетитель — настоящий Googlebot?
По user agent нельзя: строку Googlebot может отправить кто угодно. Проверьте IP-адрес посетителя в обратном DNS. Адрес настоящего Googlebot разрешается в имя под googlebot.com, google.com или googleusercontent.com, и это имя должно разрешаться обратно в тот же адрес. Google также публикует диапазоны адресов своих краулеров в виде файлов JSON. Bing, Apple и OpenAI предлагают такую же проверку для своих ботов.