他のすべてのブラウザには独自のユーザーエージェント文字列があるように見えますが、Microsoft Edgeは次のように見えることに気づきました。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
Edgeだけでなく、Mozilla、ChromeおよびSafariが含まれているのはなぜですか?
では、なぜEdgeだけでなく、Mozilla、ChromeおよびSafariが含まれているのですか?
Webページデザイナは単に怠惰であり、特定のブラウザでのみサポートされている簡単なフレームワークを使用したいため、訪問者が特定のブラウザを使用できないようにしようとします。
また、ユーザーエージェントチェックの有用性を制限するための意図的な設計決定です。この決定は、(Spartan/Edge Developersの観点から)事実に基づいている可能性が高いです。以前は、WebサイトはIE)を特に探し、ユーザーに別のブラウザーを使用するよう通知していました。
Edge/Spartanはトライデントエンジンを最新化するためのMicrosoftの最初の試みであり、Edge/Spartanの目的は当時(Blink、AppleWebKit、およびGecko)の機能セットを一致させることであったため、ユーザーエージェントはすべてが1つの方法であることを宣伝するだけですWebページの設計者がIEをターゲットにしたのと同じ方法でEdgeを簡単にターゲットにできないようにします。
IEでは適切にコーディングされておらず、通常Internet Explorer 11が新しいブラウザの多くをサポートしていても、古いブラウザで表示するのと同じようにページを表示するため、今日アクセスする多くのWebサイトは正しく表示されません。 IEで一部のページが正しく表示されませんが、ChromeやFirefoxなどの他のブラウザでは問題なく動作します。
また、スムーズスクロールをオフにしても一部のWebサイトで消えないぎくしゃくしたスクロールの問題があり、WebページがブラウザーをIEとして識別しているために重要な要素が表示されない場合があります。
Microsoftの新しいSpartanエンジンは自身をChromeとしてマスクします
ChromeとFirefoxも同様の処理を行います。
Mozilla/5.0(Windows NT X.Y; WOW64)AppleWebKit/537.36(KHTML、like Gecko)Chrome/50.0.2657.0 Safari/537.36、gzip(gfe)、gzip(gfe) "
IE11のユーザーエージェントが似ていることを指摘する価値があります。
GeckoのようなMozilla/5.0(Windows NT 10.0; WOW64; Trident/7.0; rv:11.0)
EdgeはChromeのふりをし、Chrome Safariのふりをし、SafariはMozillaのふりをしました。そしてEdgeはEdgeHTMLを使用しましたが、それを明らかにしませんでした、そしてChrome usedまばたきしたが明かしなかったが、Chrome WebKitのふりをした。WebkitはKHTMLのふりをし、KHTMLはGeckoのふりをした。そしてWebの表面には混乱が多すぎた。
Microsoft Edgeのユーザーエージェント文字列名は何ですか? からのコメント Claude によるコメント
Microsoft Edge UA文字列:
Mozilla/5.0(Windows NT 10.0)AppleWebKit/537.36(KHTML、like Gecko)Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
Neowinは最近、Windows 10、Spartan用のMicrosoftの新しいブラウザーがChrome= UA string、“ Mozilla/5.0(Windows NT 10.0; WOW64)AppleWebKit/537.36( GeckoのようなKHTML)Chrome/39.0.2171.71 Safari/537.36 Edge/12.0″。これは意図的に行われます。
また、文字列全体が「Edge/12.0」で終わっていることにも気づくでしょう。Chromeはそうではありません。
これは、MicrosoftがIE 11を使用して実行したことからの再出発ではないことを指摘しておく必要があります。 11.0)この投稿で説明されているGeckoのように。
ユーザーエージェントスニッフィングとは何ですか?
多くの場合、Web開発者はブラウザ検出のためにUAスニッフィングを行います。 Mozillaはブログでそれをうまく説明しています:
異なるブラウザに異なるWebページまたはサービスを提供することは、通常、悪い考えです。ウェブは、使用しているブラウザやデバイスに関係なく、誰でもアクセスできるように設計されています。特定のブラウザーをターゲットにするのではなく、機能の可用性に基づいて段階的に機能を強化するWebサイトを開発する方法があります。
多くの場合、怠惰な開発者は、UA文字列をスニッフィングし、ビューアが使用していると信じているブラウザに基づいて、Webサイトのコンテンツを無効にします。 Internet Explorer 8は開発者にとって共通のフラストレーションポイントであるため、開発者はユーザーがいずれかのバージョンのIEを使用しているかどうかを頻繁にチェックし、機能を無効にします。
これについてはEdgeチームのブログでさらに詳しく説明しています。
すべてのユーザーエージェント文字列には、トークンだけでなく「意味のある」バージョン番号など、実際に使用しているブラウザよりも多くの情報が含まれています。
Internet Explorer 11のUA文字列:
Mozilla/5.0(Windows NT 6.3; Trident/7.0; rv:11.0)のようにGecko
Microsoft Edge UA文字列:
Mozilla/5.0(Windows NT 10.0)AppleWebKit/537.36(KHTML、like Gecko)Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
UserAgentプロパティは、W3Cディスカッションで、Patrick H. Laukeによって「成長し続ける嘘のパック」として適切に説明されています。 (「むしろ、実際に役立つ正確な情報を少し伝えながら、古いUAスニッフィングコードがすぐに転用されない十分なレガシーキーワードを追加するというバランスをとる行為です。」)
Web開発者はUAスニッフィングをできるだけ回避することをお勧めします。最新のWebプラットフォーム機能は、ほとんどすべて簡単な方法で検出できます。たとえば、Modernizrライブラリは、特徴を検出するための素晴らしい簡単な方法です。
過去1年間、Microsoft Edgeを検出するように更新されたUAスニッフィングサイトがいくつかありました。これは、レガシーIE11コードパスを提供するためだけです。 Microsoft EdgeはIE11の動作ではなく「WebKit」の動作に一致するため、これは最良のアプローチではありません(Edge-WebKitの違いは、修正が必要なバグです)。
私たちの経験では、Microsoft Edgeはこれらのサイトの「WebKit」コードパスで最適に動作します。また、インターネットがさまざまなデバイスで利用できるようになったため、未知のブラウザが適切であると想定してください。サイトが現在既知の少数のブラウザでのみ動作するように制限しないでください。これを行うと、サイトはほぼ確実に機能しなくなります。
結論
Chrome UA文字列を提示することで、これらの開発者が使用しているハックを回避して、ユーザーに最高のエクスペリエンスを提供できます。