Генератор на случайни потребителски агенти - Създаване на браузър низове
Генерирайте автентични потребителски агентски низове за Chrome, Firefox, Safari и Edge. Тествайте съвместимост на браузъри, отзивчив дизайн и API с реалистични идентификатори на браузъри.
Генератор на случайни потребителски агенти
Генериране на случайни, реалистични потребителски агенти на браузъри за тестване на уеб разработка.
Генериран потребителски агент
Документация
Генератор на случайни потребителски агенти
Генераторът на случайни потребителски агенти създава примерни низове на потребителски агент — кратки текстови редове, които уеб браузърът изпраща до даден уебсайт, за да се идентифицира. Инструментът създава низове в реалния формат, използван от Chrome, Firefox, Safari и Edge, както за настолни, така и за мобилни устройства, така че разработчиците да могат да тестват как сайтът реагира на различни браузъри, без да инсталират всеки от тях.
Какво представлява низът на потребителския агент?
Всеки път, когато браузърът поиска уеб страница, той изпраща HTTP заглавка 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, където работят като обвивка върху механизма WebKit на Apple, а не със собствен механизъм.
При натискане на „Generate New“ се създава низ от тези три настройки и произволно избран номер на версията. Бутонът „Copy“ копира резултата в клипборда.
Формат на низа на потребителския агент според браузъра
Всеки браузър попълва подобен шаблон със свои собствени маркери.
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 Reduction“. Вместо реален номер на компилацията маркерът 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 за Windows с 64-битова архитектура или 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.
Защо низовете на потребителските агенти изглеждат объркващо
Низът изглежда претрупан заради десетилетията кръпки за съвместимост. По време на „браузърните войни“ в края на 1990-те години някои сайтове изпращали по-добри страници само на Netscape или само на Internet Explorer, като проверявали ключови думи в заглавката. Конкурентните браузъри отговорили, като добавили същите ключови думи в собствените си низове, за да не бъдат отхвърляни. Затова низът на Chrome все още споменава „Safari“ и „like Gecko“, въпреки че не използва нито един от двата механизма с това име. Всеки маркер е остатък от старо договаряне, предназначен да удовлетвори стара проверка за съвместимост, а не да описва точно софтуера.
Тъй като толкова много сайтове все още анализират тези низове, производителите на браузъри не могат просто да премахнат излишната информация, без да повредят страниците. Дългосрочният заместител, наречен User-Agent Client Hints, изпраща данните за браузъра като отделни, структурирани заглавки вместо като един дълъг низ, но класическата заглавка User-Agent все още се изпраща навсякъде за обратна съвместимост.
Обичайни приложения
- Тестване на съвместимостта. Проверка как се визуализира дадена страница, когато засече конкретен браузър, без този браузър да бъде инсталиран.
- Проверки на адаптивния дизайн. Потвърждение, че сайтът предоставя мобилно оформление, когато получи мобилен потребителски агент, а в противен случай — настолно оформление.
- Автоматизирани тестови набори. Подаване на набор от низове на потребителски агенти към тестови скриптове, за да се провери дали кодът за разпознаване на браузъра обработва правилно всеки от тях.
- Тестване на API и заглавки. Проверка дали сървърът работи правилно, когато различни типове клиенти изпращат заявки.
Ограничения
Заглавката на потребителския агент е само един от многото сигнали, които уебсайтът може да прочете. Скриптовете, изпълнявани в страницата, могат да проверят десетки други подробности, като инсталирани шрифтове, размер на екрана и начина, по който графичната карта визуализира тестово изображение — техника, наречена пръстов отпечатък. Задаването на потребителски агент на Chrome при реално сърфиране с Firefox няма да заблуди сайт, който проверява тези други сигнали; несъответствието се открива лесно. За ежедневна разработка и работа по осигуряване на качеството обаче правилно форматираният генериран низ е достатъчен, за да се тества как сървърният и клиентският код на сайта реагират на различни браузъри и устройства.
Често задавани въпроси
Какво представлява низът на потребителския агент? Това е ред текст, който браузърът изпраща с всяка уеб заявка и който посочва браузъра, версията му, операционната система и механизма за визуализация. Сървърите го използват, за да решат какво съдържание или оформление да върнат.
Защо версията на 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 не се разкриват.
Мога ли да използвам генериран потребителски агент за извличане на данни от уебсайтове?
Промяната на заглавката е възможна, но сайтовете могат да открият несъответствие чрез други сигнали, а извличането на данни може да нарушава условията за използване на сайта или правилата в robots.txt. Проверете правилата на сайта, преди да извличате данни от него.
Идентичен ли е генерираният низ с низ от реално устройство? Той следва същия формат и ред на маркерите като реален браузър от съответния тип. Поради замразяването на версията на Chrome и Edge под Android генериран низ за Chrome под Android и реален такъв могат да бъдат идентични в частта за платформата, тъй като реалните устройства отчитат същата фиксирана стойност.
Какво представлява Client Hints и заменя ли низа на потребителския агент?
Client Hints е по-нова система, която изпраща данните за браузъра и устройството като отделни HTTP заглавки вместо като един комбиниран низ. Браузърите добавят поддръжка за нея, но класическата заглавка User-Agent остава широко използвана, защото много съществуващи уебсайтове все още разчитат на нея.