Знакомство с новыми строками User Agent
Два популярных браузера в ближайшие месяцы собираются выпустить следующие стабильные версии – Internet Explorer 9 и Firefox 4. Значит, появятся и обновленные строки UA (User Agent).
Кто не в теме
«При посещении веб-сайта клиентское приложение обычно посылает веб-серверу информацию о себе. Это текстовая строка, являющаяся частью HTTP запроса, начинающаяся с User-agent: или User-Agent:, и обычно включающая такую информацию, как название и версию приложения, операционную систему компьютера и язык.» — цитата из википедии.
Internet Explorer 9
В блоге IE указывается, что 9 версия браузера будет отправлять короткие строки UA по умолчанию. Это изменение должно повысить общую производительность и совместимость браузера. Теперь IE9 будет выдавать всегда одну и туже строку UA, независимо от используемой ОС.
- Версия совместимости (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 для x86 | Mozilla/5.0 (Windows NT х.г; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1 |
Windows NT, Win64 на 64 | Mozilla/5.0 (Windows NT х.г; Win64; x64; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1 |
Windows NT, Win64 на IA64 | Mozilla/5.0 (Windows NT х.г; Win64; IA64; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1 |
Windows NT, WOW64 | Mozilla/5.0 (Windows NT х.г; WOW64; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1 |
Windows CE | Mozilla/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_64 | Mozilla/5.0 (Macintosh; Intel Mac OS X х; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1 |
Mac OS X на PowerPC | Mozilla/5.0 (Macintosh; Intel Mac OS X х; Р.В.: 2.0.1) Gecko /ггггммдд Firefox/4.0.1 |
Платформа Linux
Linux более разнообразная платформа. Вот несколько общих примеров:
Linux версия | Формат User Agent строки |
---|---|
Linux desktop, x86 | Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1 |
Linux desktop, x86_64 | Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1 |
Android Linux mobile | Mozilla/5.0 (Android; Linux armv7l; rv:2.0.1) Gecko/yyyymmdd Firefox/4.0.1 Fennec/2.0.1 |
Nokia N900 Linux mobile | Mozilla/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