Странный пользовательский агент с Google Chrome - PullRequest
31 голосов
/ 26 октября 2010

Я работал с некоторым javascript и нашел странный пользовательский агент с моим Google Chrome.

У меня установлена ​​бета-версия Google Chrome 7.0.517.41 на моем ноутбуке Ubuntu.Теперь AFAIK мой пользовательский агент должен быть чем-то похожим на Chrome / 7.0.517.41

, но он показывает мне:

Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.41 Safari/534.7

Почему это происходит .. Я отключил все установленные расширения, ноэто все то же самое ..

Ответы [ 5 ]

49 голосов
/ 26 октября 2010

Строка UA рассказывает о долгой и трагической истории попыток (не) совместимости. См., Например, это для краткой истории UA .Следует также прояснить, что прослушивание UA бесполезно, поскольку каждый современный браузер претендует на роль многих других браузеров.Это также тот случай, который вы видите здесь:

  • Mozilla - самый древний артефакт, датируемый началом 1990-х годов
  • X11 - графический интерфейс, используемый
  • Linux i686- ОС и тип процессора
  • en_US - ваш язык (английский, США)
  • AppleWebKit / 534.7 - действительный механизм рендеринга
  • (KHTML, как Gecko) - еще один артефактанализ браузера: «Gecko» - это движок рендеринга FF, KHTML - другой браузер
  • Chrome / 7.0.517.41 - актуальная версия браузера
  • Safari / 537 - еще один артефакт против прослушивания скриптов для«Safari» (который использует тот же движок)

Короче говоря: некоторые неработающие сайты предполагали, что «разрешать людям только Mozilla / Firefox / Webkit / что угодно» - разумная политика;в свою очередь, браузеры начали лгать о своем происхождении, чтобы обойти эти искусственные барьеры.Результатом являются строки UA: раздувание, полное ненужного мусора.

8 голосов
/ 26 октября 2010

По сути, Mozilla означает «совместимый с Mozilla», а «KHTML, как Gecko» описывает механизм рендеринга.

По сути, строка пользовательского агента Chrome говорит: «Я совместим с Mozilla, и мой движок рендеринга похож на Gecko», как способ описать себя разработчикам.

Большинство (если не каждый) браузер идентифицирует себя как Mozilla-совместимый как некое наследство, независимо от принадлежности к фонду Mozilla. Да, даже Internet Explorer.

Больше информации о строках в целом: Центр разработчиков Mozilla.

Кроме того, если вы разрабатываете на основе строк пользовательского агента, не делайте этого. Вы окажетесь только в мире вреда: браузеры будут обновлены для реализации функций, и ваш пользовательский агент может по-прежнему исключать их, строки пользовательских агентов могут быть подделаны, а старая добрая Opera любит сообщать о себе как Internet Explorer в старых версиях.

Вместо этого используйте обнаружение функции , чтобы определить, существует ли функция, которую вы пытаетесь использовать, для данного браузера, а затем используйте ее или нет.

3 голосов
/ 26 октября 2010

Существуют исторические причины, по которым браузеры "лгут" о себе.Основной причиной этого был нюхающий пользовательский агент.Opera - единственный браузер, который идентифицирует себя как Opera, все остальные браузеры используют Mozilla / 5.0 или более старые Mozilla / 4.0.

Единственное, что вы должны знать об этом: Строки агента пользователя не могутдоверенный, вместо этого рекомендуется обнаружение feautre.

1 голос
/ 26 октября 2010

Строки агента пользователя похожи, как уже упоминалось.

Вы не сказали этого явно, но если вы планируете использовать строку useragent для обнаружения браузера пользователя, используйте для этого хороший код.(т.е. не кодируйте его самостоятельно в спешке, вы не поймете это правильно).

Вот хороший пример, который я использовал пару раз раньше: Обнаружение браузера .

0 голосов
/ 14 июня 2013

Попробовав все, что я наконец-то использовал: http://www.useragentstring.com/

Вы можете использовать вышеуказанный веб-сайт для получения отформатированного пользовательского агента и ОС.
У них есть API, который вы можете использовать напрямую ...

надеюсь, это поможет .. !!!

...