Ссылка на строку пользовательского агента Firefox

В этом документе описывается строка пользовательского агента, используемая в Firefox 4 и новее, а также в приложениях, основанных на Gecko 2.0 и новее. Подробную информацию об изменениях строки в Gecko 2.0 см. В разделе Окончательная строка агента пользователя для Firefox 4 (сообщение в блоге). См. Также этот документ о сниффинге пользовательского агента и эту запись в блоге Hacks.

Общая форма

Строка UA самого Firefox — это разбит на четыре компонента:

Mozilla/5.0 ( platform ; rv: geckoversion ) Gecko/ geckotrail Firefox/ firefoxversion

  • Mozilla/5.0 — это общий токен, который говорит, что браузер совместим с Mozilla, и сегодня он является общим почти для всех браузеров.
  • platform описывает собственную платформу, на которой работает браузер (например, Windows, Mac, Linux или Android), а также является ли это мобильным телефоном. Телефоны с ОС Firefox говорят: « Mobile »; Интернет — это платформа. Обратите внимание, что platform может состоять из нескольких токенов, разделенных «;». См. Ниже подробности и примеры.

    Хотя это и было исправлено в Firefox 69, предыдущие 32-разрядные версии Firefox, работающие на 64-разрядных процессорах, сообщали бы, что система использует 32-разрядный -бит ЦП.

  • rv:geckoversion указывает версию выпуска Gecko (например, как « 17.0 «). В последних версиях браузеров geckoversion совпадает с firefoxversion .
  • Gecko/geckotrail указывает, что браузер основан на Gecko.
  • На рабочем столе, geckotrail — это фиксированная строка « 20100101 »
  • Firefox/ firefoxversion указывает, что браузером является Firefox, и предоставляет версию (например, « 17.0 «).
  • from Firefox 10 на мобильных устройствах, geckotrail совпадает с firefoxversion .
Рекомендуемый способ сниффинга для браузеров на основе Gecko (если вам нужно сниффать движок браузера вместо использования функции обнаружения) является наличие строк « Gecko » и « rv: «, поскольку некоторые другие браузеры включают токен « like Gecko » .

Для других продуктов на базе Gecko строка может принять одну из двух форм, в которых токены имеют то же значение, за исключением указанных ниже:

Mozilla/5.0 ( platform ; rv: geckoversion ) Gecko/ geckotrail appname/appversion
Mozilla/5. 0 ( платформа ; rv: geckoversion ) Gecko/ geckotrail Firefox/ firefoxversion appname/appversion

  • имя приложения /appversion указывает имя и версию приложения. Например, это может быть « Camino/2.1.1 » или « SeaMonkey/2.7.1 ».
  • Firefox/firefoxversion — это необязательный токен совместимости, который некоторые браузеры на основе Gecko могут включить для обеспечения максимальной совместимости с веб-сайтами, которые ожидают Fire Fox. firefoxversion обычно представляет собой эквивалентную версию Firefox, соответствующую данной версии Gecko. Некоторые браузеры на базе Gecko могут не использовать этот токен; по этой причине снифферы должны искать Gecko, а не Firefox! Отображение этого токена контролируется логическим параметром «general.useragent.compatMode.firefox» .

Индикаторы мобильных устройств и планшетов

Только начиная с Firefox 11 и более поздних версий.

platform в строке UA указывает, запущен ли Firefox на телефоне или планшете. Когда Firefox работает на устройстве с форм-фактором телефона, в части platform есть токен Mobile; . строки UA. Когда Firefox работает на планшетном ПК, вместо этого в части platform строки UA есть токен Tablet; . . Например:

 Mozilla/5.0 (Android 4.4;  Mobile ; rv: 41.0) Gecko/41.0 Firefox/41.0Mozilla/5.0 (Android 4.4;  Tablet ; rv: 41.0) Gecko/41.0 Firefox/41.0 
Номера версий не имеют отношения. Избегайте вывода материалов на их основе.

Предпочтительный способ нацелить контент на форм-фактор устройства — использовать CSS Media Queries. Однако, если вы используете сниффинг UA для нацеливания контента на форм-фактор устройства, ищите Mobi (чтобы включить Opera Mobile, который использует «Mobi») для форм-фактора телефона и выполните не предполагаю какой-либо корреляции между «Android» и форм-фактором устройства. Таким образом, ваш код будет работать, если/когда Firefox поставляется на других операционных системах телефона/планшета или Android используется для ноутбуков. Кроме того, для поиска сенсорных устройств используйте обнаружение касания, а не поиск «Mobi» или «Tablet», поскольку могут быть сенсорные устройства, не являющиеся планшетами.

Устройства с Firefox OS идентифицируют себя без каких-либо действий. системная индикация; например: «Mozilla/5.0 (Mobile; rv: 15.0) Gecko/15.0 Firefox/15.0». Интернет — это платформа.

Windows

Пользовательские агенты Windows имеют следующие варианты, где xy — это версия Windows NT (например, Windows NT 6.1).

версия для Windows строка пользовательского агента Gecko
Windows NT на процессоре x86 Mozilla/5.0 (Windows NT x . y ; rv: 10.0) Gecko/20100101 Firefox/10.0
Windows NT на процессоре x64 Mozilla/5.0 (Windows NT x . y ; Win64; x64; rv: 10.0) Gecko/20100101 Firefox/10.0

Macintosh

Здесь xy — это версия Mac OS. X (например, Mac OS X 10.6).

версия Mac OS X Пользователь Gecko строка агента
Mac OS X на Intel x86 или x86_64 Mozilla/5.0 ( Macintosh; Intel Mac OS X xy ; rv: 10.0) Gecko/20100101 Firefox/10.0
Mac OS X на PowerPC Mozilla/5.0 (Macintosh; PPC Mac OS X xy ; rv: 10.0) Gecko/20100101 Firefox/10.0

Linux

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

Версия для Linux Строка пользовательского агента Gecko
Рабочий стол Linux на процессоре i686 Mozilla/5.0 (X11; Linux i686; rv: 10.0 ) Gecko/20100101 Firefox/10.0
Рабочий стол Linux на процессоре x86_64 Mozilla/5.0 (X11; Linux x86_64; rv: 10.0) Gecko/20100101 Firefox/10.0
Nokia N900 Linux mobile в браузере Fennec Mozilla/5.0 (Maemo; Linux armv7l; rv: 10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0

Android (версия 40 и ниже)

Форм-фактор Строка пользовательского агента Gecko
Телефон Mozilla/5.0 (Android; Mobile; rv: 40.0) Gecko/40.0 Firefox/40.0
Планшет Mozilla/5.0 (Android; планшет; rv: 40.0) Gecko/40.0 Firefox/40.0

Андр oid (версия 41 и выше)

Начиная с версии 41, Firefox для Android будет содержать версию Android как часть токена платформы . Для повышения совместимости, если браузер работает с версией ниже 4, он сообщит 4.4. Версия Android 4 и выше сообщит версию точно. Обратите внимание, что один и тот же Gecko — с одинаковыми возможностями — поставляется для всех версий Android.

Форм-фактор Строка пользовательского агента Gecko
Телефон Mozilla/5.0 (Android 4.4; Mobile; rv: 41.0) Gecko/41.0 Firefox/41.0
Tablet Mozilla/5.0 (Android 4.4; Tablet ; rv: 41.0) Gecko/41.0 Firefox/41. 0

Focus для Android

Начиная с версии 1, Focus работает от Android WebView и использует следующий формат строки пользовательского агента:

 Mozilla/5.0 (Linux;  ) AppleWebKit/ (KHTML, как Gecko)  Версия/4.0 Focus/ Chrome/ Mobile Safari/ 

Планшетные версии на зеркальном мобильном устройстве WebView, но не содержат Mobile token.

Начиная с версии 6, пользователи могут выбрать использование Focus для Android на основе GeckoView со скрытым предпочтением: он использует строку GeckoView UA для рекламы совместимости с Gecko.

Версия фокуса (механизм рендеринга) Строка пользовательского агента
1.0 (WebView Mobile) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, например Gecko) Версия/4.0 Focus/1.0 Chrome/59.0.3029.83 Mobile Safari/537.36
1.0 (планшет WebView) Mozi lla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, как Gecko) Версия/4.0 Focus/1.0 Chrome/59.0.3029.83 Safari/537.36
6.0 (GeckoView) Mozilla/5.0 (Android 7.0; Mobile; rv: 62.0) Gecko/62.0 Firefox/62.0

Klar для Android

Начиная с версии 4.1, Klar для Android использует ту же строку UA, что и Focus для Android. До версии 4.1 он отправлял токен Klar/ product/version .

Версия Klar (механизм рендеринга) Строка пользовательского агента
1.0 (WebView) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, как Gecko) Версия/4.0 Klar/1.0 Chrome/58.0.3029.83 Mobile Safari/537.36
4.1+ (WebView) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, как Gecko) Версия/4.0 Focus/4.1 Chrome/62.0.3029.83 Mobile Safari/537.36
6.0+ (GeckoView) Mozilla/5.0 (Android 7.0; мобильный; rv: 62.0) Gecko/62.0 Firefox/62.0

Focus для iOS

Версия 7 Focus для iOS использует строку пользовательского агента в следующем формате:

 Mozilla/5.0 (iPhone; CPU iPhone OS 12_1, например Mac OS X) AppleWebKit/ 605.1.15 (KHTML, например, Gecko) FxiOS/7.0.4 Mobile/16B91 Safari/605.1.15 

Примечание: этот пользовательский агент был получен из симулятора iPhone XR и может отличаться на устройстве.

Firefox для Fire TV

Версия 3 (и, возможно, более ранняя) Firefox для Fire TV использует строку пользовательского агента в следующем формате:

 Mozilla/5.0 (Linux;  ) AppleWebKit/537.36 (KHTML, например, Gecko) Версия/4. 0 Focus/ Chrome/ Safari/ 
Версия Firefox TV Строка пользовательского агента
v3.0 Mozilla/5.0 (Linux; Android 7.1.2) AppleWebKit/537.36 (KHTML, как Gecko) Версия/4.0 Focus/3.0 Chrome/59.0.3017.125 Safari/537.36

Firefox для эхо-шоу

Начиная с версии 1.1 Firefox для эхо-шоу использует строку пользовательского агента в следующем формате:

 Mozilla/5.0 (Linux; ) AppleWebKit/537.36 (KHTML, например, Gecko) Версия/4.0 Focus/ Chrome/ Safari/ 
Firefox для версии Echo Show Строка пользовательского агента
v1.1 Mozilla/5.0 (Linux; Android 5.1.1) AppleWebKit /537.36 (KHTML, как Gecko) Версия/4.0 Focus/1.1 Chrome/59.0.3017.125 Safari/537.36

Firefox OS

Форм-фактор Строка пользовательского агента Gecko
Телефон Mozilla/5.0 (Мобильный; rv: 26.0) Gecko/26.0 Firefox/26.0
Tablet Mozilla/5.0 (планшет; rv: 26.0) Gecko/ 26.0 Firefox/26.0
TV Mozilla/5.0 (TV; rv: 44.0) Gecko/44.0 Firefox/44.0
Зависит от устройства Mozilla/5.0 (Mobile; nnnn; rv: 26.0) Gecko/26.0 Firefox/26.0

Строки пользовательского агента для конкретного устройства

Хотя Mozilla настоятельно не рекомендует , некоторые производители мобильных телефонов, к сожалению, включают токен в строку UA своего устройства, которая представляет их идентификатор устройства. В этом случае строка UA Firefox OS будет выглядеть как строка для конкретного устройства в приведенной выше таблице, где < sizesnnnn;</sizes — это код производителя для устройство (см. Рекомендации). Некоторые из них, как мы заметили, имеют форму « NexusOne; », « ZTEOpen; » или « Open C; «(обратите внимание, что ставить пробел также не рекомендуется). Мы предоставляем эту информацию, чтобы помочь с вашей логикой обнаружения UA, но Mozilla не рекомендует обнаруживать идентификатор устройства в строках UA.

Вот регулярное выражение JavaScript, которое будет обнаруживать все мобильные устройства, включая устройства с идентификатор устройства в строке UA:

/mobi/i 

i делает его нечувствительным к регистру, а mobi соответствует всем мобильным браузерам.

Номер версии Firefox OS

В то время как номер версии для Firefox ОС не включена в строку UA, информацию о версии можно вывести из номера версии Gecko, присутствующего в строке UA.

Номер версии ОС Firefox Номер версии Gecko
1.0.1 18.0
1.1 18,1
1,2 26,0
1,3 28,0
1,4 30,0
2.0 32.0
2.1 34,0
2,2 37
2.5 44

Соответствия легко найти, просмотрев репозиторий Mercurial имена: репозитории, начинающиеся с mozilla-b2g , являются репозиториями выпусков для Firefox OS, и в их названиях есть версии Firefox OS и Gecko.

Firefox OS имеет четырехзначный номер версии: XXXY . Первые две цифры принадлежат группе разработчиков продукта Mozilla и обозначают версии с новыми функциями (например: v1.1, 1.2 и т. Д.). Третья цифра увеличивается с помощью тегов обычных версий (примерно каждые 6 недель) для обновлений безопасности, а четвертая принадлежит OEM.

Firefox для iOS

Firefox для iOS использует строку UA Mobile Safari по умолчанию с дополнительным токеном <sizesFxiOS/ , аналогично тому, как Chrome для iOS идентифицирует себя.

Форм-фактор Строка пользовательского агента Firefox для iOS
iPod Mozilla/5.0 (iPod touch; процессор iPhone OS 8_3, как Mac OS X) AppleWebKit/600.1.4 (KHTML, например Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
iPhone Mozilla/5.0 (iPhone; процессор iPhone OS 8_3, например Mac OS X) AppleWebKit/600.1.4 (KHTML, например Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
iPad Mozilla/5.0 (iPad; процессор iPhone OS 8_3, как Mac OS X) AppleWebKit/600.1.4 (KHTML, как Gecko) FxiOS/ 1.0 Mobile/12F69 Safari/600.1.4

Firefox Web Runtime

Веб-среда выполнения использует ту же строку пользовательского агента, что и настольный Firefox.

Другие браузеры на основе Gecko

Это несколько примеров строк UA из других браузеров на базе Gecko на различных платформах. Обратите внимание, что многие из них еще не выпущены в Gecko 2.0!

Браузер Пользователь Gecko строка агента
Firefox для Maemo (Nokia N900) Mozilla/5.0 (Maemo ; Linux armv7l; rv: 10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1
Camino на Mac Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv: 2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1
SeaMonkey в Windows Mozilla/5.0 (Windows NT 5.2; rv: 10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1
SeaMonkey на Mac Mozilla/5. 0 (Macintosh; Intel Mac OS X 10.5; rv: 10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1
SeaMonkey в Linux Mozilla/5.0 (X11; Linux i686; rv: 10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1

Примечания по реализации для приложений, поставщиков и расширений

До Firefox 4 и Gecko 2.0 в расширения можно было добавлять Пользовательский агент разделяет настройки general.useragent.extra.identifier (см. устаревшую Справочник по строкам пользовательского агента). Но это было невозможно после ошибки 581008.

Раньше определенные плагины, надстройки или расширения добавляли части пользовательского агента для уведомления сайтов о том, что они были установлены. Рекомендуемый способ сделать это, если это абсолютно необходимо (помните, что он замедляет каждый запрос), — установить собственный HTTP-заголовок.

См. Также

  • Строка пользовательского агента Firefox OS (сообщение в блоге со ссылкой на ошибку 777710)
  • Окончательная строка пользовательского агента для Firefox 4 (сообщение в блоге)
  • Рекомендации по прослушиванию строки UA для кросс-браузерной поддержки.
  • window.navigator.userAgent
  • Добавить версию Android в строку Fennec UA (ошибка 1169772)

Комментарии к mozilla.dev.platform

Оцените статью
Блог о современных технологиях
Добавить комментарий