私はいくつかのJavaScriptを使用していて、GoogleChromeで奇妙なユーザーエージェントを見つけました。
私はGoogle Chrome 7.0.517.41ベータ版をUbuntuラップトップにインストールしています。これで、ユーザーエージェントは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
なぜこれが起こっているのですか..インストールされているすべての拡張機能を無効にしましたが、それでも同じです。
UA文字列は、(非)互換性の試みの長く悲劇的な歴史を物語っています。 Aの簡単な履歴については、たとえばこれを参照してください 。また、最近のすべてのブラウザは他の多くのブラウザのふりをしているため、UAスニッフィングは役に立たないことも明確にする必要があります。これは、ここに表示されるケースでもあります。
要するに、いくつかの壊れたサイトは、「Mozilla/Firefox/Webkit /何でも許可する」ことが賢明なポリシーであると想定していました。次に、ブラウザはこれらの人工的な障壁を回避するためにその起源について嘘をつき始めました。 UA文字列はその結果です:無駄なゴミでいっぱいのブロートウェア。
基本的に、Mozillaは「Mozilla互換」の略で、「KHTML、Geckoのような」はレンダリングエンジンを表します。
基本的に、Chromeのユーザーエージェント文字列は、開発者に自分自身を説明する方法として、「私はMozillaと互換性があり、私のレンダリングエンジンはGeckoのようなものです」と言っています。
ほとんどの(すべてではないにしても)ブラウザは、Mozilla Foundationとの提携に関係なく、一種のレガシーなものとしてMozilla互換であると認識します。はい、InternetExplorerですら。
文字列全般の詳細については、次のURLをご覧ください。 Mozillaの開発者センター
また、ユーザーエージェント文字列に基づいて開発している場合は、そうしないでください。あなたは傷ついた世界にいるだけです:ブラウザは機能を実装するためにアップグレードされ、ユーザーエージェントのスニフはまだそれらを除外するかもしれません、ユーザーエージェントの文字列は偽装される可能性があります、そして古き良きOpera古いバージョンではInternetExplorerとして自分自身を報告します。
代わりに、 機能検出 を使用して、使用しようとしている機能が特定のブラウザーに存在するかどうかを判断し、それを使用するかどうかを決定します。
ブラウザが自分自身について「嘘をついている」という歴史的な理由があります。これの主な理由は、ユーザーエージェントのスニッフィングでした。 OperaはOperaとして識別される唯一のブラウザであり、他のすべてのブラウザはMozilla /5.0または古いブラウザのMozilla/4.0を使用しています。
これについて知っておくべき唯一のことは次のとおりです。ユーザーエージェント文字列は信頼できません。代わりに機能検出をお勧めします。
前述のように、ユーザーエージェント文字列はそのようなものです。
あなたはそれを明確に言っていませんが、useragent文字列を使用してユーザーのブラウザを検出することを計画している場合は、それを行うためにいくつかの良いコードを使用してください(つまり、急いで自分でコーディングしないでください、あなたはそれを正しく理解しません)。
これは私が以前に数回使用した素敵なものです: ブラウザ検出 。