Генератор случайных User Agent - Создание строк браузера
Генерируйте аутентичные строки user agent для Chrome, Firefox, Safari и Edge. Тестируйте совместимость браузеров, адаптивные дизайны и API с реалистичными идентификаторами браузеров.
Генератор случайных User Agent
Генерация случайных, реалистичных строк User Agent для тестирования веб-разработки.
Сгенерированный User Agent
Документация
Генератор случайных строк User-Agent
Генератор случайных строк User-Agent создаёт примеры строк User-Agent — коротких текстовых строк, которые веб-браузер отправляет веб-сайту для идентификации. Этот инструмент формирует строки в настоящем формате Chrome, Firefox, Safari и Edge для настольных компьютеров и мобильных устройств, чтобы разработчики могли проверять реакцию сайта на разные браузеры без установки каждого из них.
Что такое строка User-Agent?
Каждый раз, когда браузер запрашивает веб-страницу, он отправляет HTTP-заголовок User-Agent. Это одна строка текста, в которой указаны название браузера, его версия, операционная система и движок отображения — часть браузера, которая рисует страницу. Веб-сайт может прочитать этот заголовок и решить, какую разметку страницы или функции отправить в ответ.
Типичная строка User-Agent выглядит так:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Почти каждый браузер начинает свою строку с «Mozilla/5.0». Это пережиток 1990-х годов, когда веб-сайты проверяли наличие этого слова, чтобы определить, способен ли браузер открыть страницу. Более новые браузеры сохранили этот маркер, чтобы старые проверки их не блокировали.
Как работает этот генератор
У инструмента есть три параметра:
- Тип устройства — настольный компьютер или мобильное устройство.
- Семейство браузеров — Chrome, Firefox, Safari или Edge.
- Операционная система — Windows, macOS или Linux для настольных компьютеров; iOS или Android для мобильных устройств.
Не все сочетания существуют в реальности, поэтому инструмент ограничивает набор вариантов. Safari доступен только в macOS и iOS, поскольку Apple не выпускает Safari для Windows, Linux или Android. Chrome, Firefox и Edge доступны во всех перечисленных операционных системах, включая iOS, где они работают как оболочка над движком Apple WebKit, а не на собственных движках.
При нажатии «Создать новую» строка формируется на основе этих трёх параметров и случайно выбранного номера версии. Кнопка «Копировать» копирует результат в буфер обмена.
Формат строки User-Agent для разных браузеров
Каждый браузер заполняет похожий шаблон собственными маркерами.
Chrome (настольная версия):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36
2Chrome (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36
2Chrome (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/major.0.build.build Mobile/15E148 Safari/604.1
2Firefox (настольная версия):
1Mozilla/5.0 (platform; rv:major.0) Gecko/20100101 Firefox/major.0
2Firefox (Android):
1Mozilla/5.0 (Android version; Mobile; rv:major.0) Gecko/major.0 Firefox/major.0
2Firefox (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/major.0 Mobile/15E148 Safari/605.1.15
2Safari (macOS):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Safari/605.1.15
2Safari (iOS):
1Mozilla/5.0 (iPhone; CPU iPhone OS major_minor like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Mobile/15E148 Safari/604.1
2Edge (настольная версия):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36 Edg/major.0.build.build
2Edge (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36 EdgA/major.0.build.build
2Edge (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor EdgiOS/major.0.build.build Mobile/15E148 Safari/605.1.15
2Apple требует, чтобы каждый браузер в iOS использовал WebKit, поэтому приведённые выше варианты для iOS содержат общий для Safari маркер движка AppleWebKit/605.1.15 и дополнительный маркер браузера: CriOS/ для Chrome, FxiOS/ для Firefox и EdgiOS/ для Edge. Ни один из них не содержит маркера Chrome/ или Gecko/. Safari и Edge в iOS также отправляют маркер Version/, обозначающий версию Safari, поставленную вместе с операционной системой, поэтому он всегда совпадает с версией iOS в той же строке.
Начиная с 2021 года Chrome и браузеры на основе Chromium, например Edge, заморозили большую часть номера версии на настольных компьютерах и Android, чтобы уменьшить объём идентифицирующих сведений в заголовке. Google называет это «сокращением данных User-Agent». Вместо настоящего номера сборки маркер Chrome в таких строках всегда имеет вид major.0.0.0, например 128.0.0.0, и этот генератор воспроизводит такое поведение. Исключениями являются собственный маркер Edge — Edg/ на настольных компьютерах, EdgA/ на Android и EdgiOS/ в iOS — и Chrome в iOS (CriOS/): они по-прежнему содержат полный номер сборки из четырёх частей, поскольку политика Google по сокращению на них не распространяется.
Firefox не применяет такое же замораживание. Его настоящая строка версии обычно состоит всего из двух частей — major.0, и именно такой вариант создаёт генератор. После установки исправления безопасности в сети может встретиться трёхчастная версия Firefox, например 95.0.2, но этот инструмент создаёт только двухчастный вариант.
Примеры результатов
Chrome для Windows на настольном компьютере:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Firefox для macOS на настольном компьютере:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
2Safari для macOS на настольном компьютере:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15
2Edge для Windows на настольном компьютере:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.2903.86
2Chrome для Android на мобильном устройстве:
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36
2Edge для Android на мобильном устройстве:
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 EdgA/128.0.2952.62
2Safari для iPhone на мобильном устройстве:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1
2Firefox для Android на мобильном устройстве:
1Mozilla/5.0 (Android 13; Mobile; rv:130.0) Gecko/130.0 Firefox/130.0
2Chrome для iPhone на мобильном устройстве:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/128.0.6613.98 Mobile/15E148 Safari/604.1
2Firefox для iPhone на мобильном устройстве:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/130.0 Mobile/15E148 Safari/605.1.15
2Edge для iPhone на мобильном устройстве:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 EdgiOS/128.0.2952.62 Mobile/15E148 Safari/605.1.15
2Различия между настольными и мобильными версиями
Строки для настольных устройств указывают операционную систему и часто архитектуру процессора: Win64; x64 для 64-разрядной Windows или Intel Mac OS X для компьютера Mac. Они остаются довольно единообразными, поскольку существует лишь несколько настольных платформ, которые нужно представить.
В мобильных строках обычно добавляется слово «Mobile», чтобы сайт знал, что нужно предоставить разметку, удобную для сенсорного управления. Устройства iOS обозначают себя как «iPhone» вместе с версией iOS, записанной с помощью символов подчёркивания (17_4), при этом завершающий нулевой номер исправления не указывается: используется 17_4, а не 17_4_0. Android устроен иначе: из-за той же политики сокращения версий, которая влияет на номер сборки Chrome, Chrome и Edge на Android всегда сообщают платформу как Linux; Android 10; K независимо от фактической версии Android или модели телефона. Буква «K» является заполнителем, а не настоящим кодом устройства, и реальная версия Android скрыта. Firefox для Android не замораживает версию таким же образом и вместо этого сообщает настоящую основную версию Android, но вообще не указывает модель устройства. Генератор, который показывает конкретную модель телефона, например номер модели Galaxy, внутри строки Chrome для Android, не будет соответствовать работе настоящего современного Chrome.
Почему строки User-Agent выглядят запутанно
Строка выглядит перегруженной из-за десятилетий исправлений для совместимости. Во время «войн браузеров» в конце 1990-х годов некоторые сайты отправляли улучшенные страницы только пользователям Netscape или только пользователям Internet Explorer, проверяя ключевые слова в заголовке. Конкурирующие браузеры отвечали добавлением тех же ключевых слов в собственные строки, чтобы сайты их не отклоняли. Поэтому в строке Chrome до сих пор упоминаются «Safari» и «like Gecko», хотя он не использует ни один из этих движков под таким названием. Каждый маркер — это остаток старого протокола согласования, предназначенный для прохождения устаревшей проверки совместимости, а не точного описания программы.
Поскольку множество сайтов по-прежнему разбирает эти строки, производители браузеров не могут просто удалить лишние элементы, не нарушив работу страниц. Долгосрочная замена, называемая подсказками клиента User-Agent, передаёт сведения о браузере в отдельных структурированных заголовках вместо одной длинной строки, но классический заголовок User-Agent по-прежнему отправляется повсюду для обратной совместимости.
Распространённые применения
- Проверка совместимости. Проверка отображения страницы при обнаружении определённого браузера без его установки.
- Проверка адаптивного дизайна. Подтверждение того, что сайт предоставляет мобильную разметку при получении мобильной строки User-Agent, а в остальных случаях — разметку для настольного компьютера.
- Автоматизированные наборы тестов. Передача набора строк User-Agent в тестовые сценарии для проверки правильной обработки каждой из них кодом определения браузера.
- Проверка API и заголовков. Проверка правильной работы сервера при отправке запросов клиентами разных типов.
Ограничения
Заголовок User-Agent — лишь один из множества сигналов, которые может считывать веб-сайт. Скрипты, выполняющиеся на странице, могут проверять десятки других сведений, например установленные шрифты, размер экрана и то, как видеокарта отображает тестовое изображение; этот метод называется сбором цифрового отпечатка. Установка строки User-Agent Chrome при фактическом использовании Firefox не обманет сайт, который проверяет другие сигналы: несоответствие легко обнаружить. Однако для повседневной разработки и контроля качества правильно сформированной сгенерированной строки достаточно, чтобы проверить реакцию серверного и клиентского кода сайта на разные браузеры и устройства.
Часто задаваемые вопросы
Что такое строка User-Agent? Это текстовая строка, которую браузер отправляет с каждым веб-запросом и в которой указывает браузер, его версию, операционную систему и движок отображения. Серверы используют её, чтобы решить, какой контент или разметку вернуть.
Почему версия Chrome всегда заканчивается на .0.0.0?
Начиная с 2021 года Chrome заморозил большую часть номера версии, который сообщает в заголовке User-Agent, чтобы уменьшить возможности снятия цифрового отпечатка. Меняется только основной номер версии, а остальная часть фиксирована как .0.0.0. Собственный маркер Edge и все браузеры в iOS являются исключениями и по-прежнему показывают полный номер сборки.
Почему в строке iPhone указано «Safari», даже если выбран другой браузер?
Apple требует, чтобы все браузеры в iOS использовали её движок WebKit, поэтому Chrome, Firefox и Edge в iOS сообщают о WebKit и заканчивают строку маркером Safari/. Браузер обозначается отдельным маркером: CriOS/ для Chrome, FxiOS/ для Firefox и EdgiOS/ для Edge.
Почему в строке Android не указана модель моего телефона?
Современные Chrome и Edge на Android сообщают фиксированную строку платформы Linux; Android 10; K для каждого устройства и каждой реальной версии Android в рамках той же политики сокращения версий, которая влияет на номер сборки Chrome. Реальные модель и версия Android не передаются.
Можно ли использовать сгенерированную строку User-Agent для веб-скрапинга?
Изменить заголовок можно, но сайты способны обнаружить несоответствие по другим сигналам, а скрейпинг может нарушать условия использования сайта или правила robots.txt. Перед скрейпингом следует ознакомиться с политиками сайта.
Идентична ли сгенерированная строка строке с настоящего устройства? Она имеет тот же формат и порядок маркеров, что и настоящий браузер такого типа. Из-за замораживания версий Chrome и Edge на Android сгенерированная строка Chrome для Android и настоящая строка могут быть идентичны в части платформы, поскольку реальные устройства сообщают одно и то же фиксированное значение.
Что такое Client Hints и заменяет ли этот механизм строку User-Agent?
Client Hints — это более новая система, которая передаёт сведения о браузере и устройстве в отдельных HTTP-заголовках вместо одной объединённой строки. Браузеры добавляют поддержку этой системы, но классический заголовок User-Agent широко используется и дальше, поскольку от него по-прежнему зависят многие существующие веб-сайты.