Xiper

Знакомство с новыми строками User Agent

Автор: Анна Лысак Дата публикации:

Два популярных браузера в ближайшие месяцы собираются выпустить следующие стабильные версии – Internet Explorer 9 и Firefox 4. Значит, появятся и обновленные строки UA (User Agent).

Кто не в теме

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

Internet Explorer 9

В блоге IE указывается, что 9 версия браузера будет отправлять короткие строки UA по умолчанию. Это изменение должно повысить общую производительность и совместимость браузера. Теперь IE9 будет выдавать всегда одну и туже строку UA, независимо от используемой ОС.

cтрока UA IE9
  • Версия совместимости (Application Version) увеличивается с “Mozilla/4.0” до “Mozilla/5.0” чтобы полностью соответствовать другим браузерам. Эти изменения показывают, что IE9 является совместимым браузером.
  • Version Token (версия браузера) увеличивается с "MSIE 8.0" до " MSIE 9.0.
  • Trident Token (версия движка) увеличивается с “Trident/4.0” до “Trident/5.0”

Режим совместимости

IE 9 в режиме IE7 Standards Mode будет выдавать строку UA в таком виде:

  • Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)

Firefox 4

В новой версии Firefox 4, которая ожидается в октябре, также будет обновленная строка UA. В отличие от IE, у Firefox для разных платформ используются разные строки UA:

  • Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1
  • Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1
  • Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1

А теперь подробнее.

Основная форма (General form)

Строчка UA разбивается на четыре составляющие:

Mozilla/5.0 (platform; rv:geckoversion) Gecko/build Firefox/appversion

  • Mozilla/5.0 — основной маркер, указывающий версию совместимости и является общим практически для любого браузера сегодня.
  • (platform; rv:geckoversion) — указывает на какой платформе работает браузер, (например, Windows, Mac или Linux) и используемую версию Gecko (например, "2.0.1").
  • Gecko/build — означает, что браузер на основе Gecko и обеспечивает создание идентификаторов (в формате ггммдд ) с указанием даты выпуска браузера.
  • Firefox / appversion идентифицирует браузер как Firefox, а также указывает его версию (например, "4.0.1 "). Этот компонент будет разным для разных Gecko-браузеров — например, для Fennec или Seamonkey — которые ведут себя очень похоже на Firefox.

Платформа Windows

UA пользователей Windows имеют несколько вариантов, где ху — версия Windows NT или Windows CE (например, Windows NT 6.1).

Windows версия Формат User Agent строки
Windows NT для x86Mozilla/5.0 (Windows NT х.г; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1
Windows NT, Win64 на 64Mozilla/5.0 (Windows NT х.г; Win64; x64; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1
Windows NT, Win64 на IA64Mozilla/5.0 (Windows NT х.г; Win64; IA64; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1
Windows NT, WOW64Mozilla/5.0 (Windows NT х.г; WOW64; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1
Windows CEMozilla/5.0 (WindowsCE х.г; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1

Платформа Macintosh

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

Mac OS X версияФормат User Agent строки
Mac OS X на Intel x86 и x86_64Mozilla/5.0 (Macintosh; Intel Mac OS X х; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1
Mac OS X на PowerPCMozilla/5.0 (Macintosh; Intel Mac OS X х; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1

Платформа Linux

Linux более разнообразная платформа. Вот несколько общих примеров:

Linux версияФормат User Agent строки
Linux desktop, x86Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1
Linux desktop, x86_64Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1
Android Linux mobileMozilla/5.0 (Android; Linux armv7l; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1 Fennec/2.0.1
Nokia N900 Linux mobileMozilla/5.0 (X11; Linux armv7l; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1 Fennec/2.0.1

Итого для Firefox 4

  • Убран префикс "Windows; " для платформ Windows.
  • Также теперь нет привязки к локализации пользователя (например, "en-US;"), потому что язык браузера не всегда соответствует языку, на котором пользователь предпочитает просматривать информацию. HTTP Accept header лучший источник информации в таком случае.
  • Больше не будет обозначения "U; ". Ранее это понятие использовалось, чтобы обозначить браузеры с устойчивым шифрованием и, соответственно, отсутствие "U; " обозаначало браузеры со слабым шифрованием. Сейчас браузеров со слабым шифрованием уже нет и необходимость использования этого понятия тоже отпадает.
  • Тестовые сборки Firefox теперь будут обозначаться также как и финальные версии - "Firefox/x.y.z".

Также возможно удаление префикса "Macintosh; " из строки для Mac.

Мобильные браузеры

Для Firefox Mobile, который более известен как Fennec, строка UA также содержит добавляемый в конце компонент Fennec / fennecversion. Для предстоящего релиза Fennec 2,0, fennecversion будет "2.0.1". Это означает, что браузер идентифицирует себя как Firefox и Fennec для совместимости с существующими сайтами.

Для мобильного браузера IE новая UA строка выглядит так:

Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; ;)

  • MSIE 7.0 — версия браузера.
  • "Windows Phone OS 7.0" — используемая платформа.
  • Trident 3.1 — версия движка.
  • IEMobile/7.0, — текущая версия Windows Phone Internet Explorer.
  • Производители устройства добавляют свою информацию в конец строки UA, указывая информацию о модели устройства и его производителе.

Материалы:

  • blogs.msdn
  • blog.mozilla
  • developer.mozilla
  • webmonkey

По теме