Microsoft Edge ユーザー エージェント文字列

Microsoft Edge ユーザー エージェント文字列

他のすべてのブラウザには独自のユーザー エージェント文字列があるようですが、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 も含まれているのでしょうか?

答え1

では、なぜ Edge だけではなく、Mozilla、Chrome、Safari も含まれているのでしょうか?

Web ページの設計者は単純に怠惰であり、特定のブラウザーでのみサポートされているより簡単なフレームワークを使用したいため、訪問者が特定のブラウザーを使用することをブロックしようとします。

また、ユーザー エージェント チェックの有用性を制限することは、意図的な設計上の決定でもあります。この決定は、おそらく、過去には Web サイトが IE を具体的に検索し、ユーザーに別のブラウザーを使用するように通知していたという事実 (Spartan/Edge 開発者の観点から) に基づいています。

Edge/Spartan は Microsoft が Trident エンジンを近代化する最初の試みであり、Edge/Spartan の目的は当時の (Blink、AppleWebKit、および Gecko) の機能セットに一致することであったため、ユーザー エージェントが単にすべてを備えていると宣伝することは、Web ページ デザイナーが IE をターゲットにしたのと同じ方法で Edge を簡単にターゲットにすることを防ぐ 1 つの方法です。

現在アクセスする多くの Web サイトは、正しくコーディングされていないため IE では適切に表示されません。Internet Explorer 11 は多くの新しい Web 標準をサポートしていますが、通常は古いブラウザーと同じようにページが表示されます。一部のページは、Chrome や Firefox などの他のブラウザーでは問題なく表示されますが、IE では正しく表示されません。

また、スムーズ スクロールをオフにした後でも一部の Web サイトでぎくしゃくしたスクロールが解消されない問題があり、Web ページがブラウザーを IE として識別したために重要な要素が表示されない場合もあります。

マイクロソフトの新しいSpartanエンジンはChromeを装う

Chrome と Firefox も同様のことを行います:

Mozilla/5.0 (Windows NT XY; WOW64) AppleWebKit/537.36 (KHTML、Gecko に類似) Chrome/50.0.2657.0 Safari/537.36、gzip(gfe)、gzip(gfe)"

IE11 のユーザー エージェントも同様であることは指摘しておく価値があります。

Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) は Gecko に似ています

ユーザーエージェント文字列の変更

答え2

Edge は Chrome のふりをし、Chrome は Safari のふりをし、Safari は Mozilla のふりをしました。Edge は EdgeHTML を使用していましたが、それを明らかにしませんでした。Chrome は Blink を使用していましたが、それを明らかにしませんでしたが、Chrome は WebKit を使用しているふりをしました。Webkit は KHTML のふりをし、KHTML は Gecko のふりをしました。そして、Web の表面には混乱があふれていました。

出典Microsoft Edge のユーザー エージェント文字列名は何ですか?コメントクロード

Microsoft Edge UA 文字列:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

その理由についてはこのブログ記事で詳しく説明します。

Neowinは最近、MicrosoftのWindows 10向けの新しいブラウザSpartanがChrome UA文字列を使用していると報告した。「Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0」。 それは故意に行われます。

また、文字列全体が「Edge/12.0」で終わることにも気づくでしょうが、Chrome ではそうではありません。

ここで指摘しておきたいのは、これは Microsoft が IE 11 で行ったことと根本的に異なるものではないということです。この投稿で説明されているように、Windows 8 では、IE 11 は Gecko のように Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) となります。

ユーザーエージェントスニッフィングとは何ですか?

多くの場合、Web 開発者はブラウザ検出のために UA スニッフィングを使用します。Mozilla はブログでこれをわかりやすく説明しています。

異なるブラウザに異なる Web ページやサービスを提供するのは、通常は良い考えではありません。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、Gecko など) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

userAgent プロパティは、W3C の議論で Patrick H. Lauke によって「増え続ける嘘の塊」と適切に表現されています。(「または、古い UA スニッフィング コードがすぐに機能しなくなることのない十分なレガシー キーワードを追加しながら、実際に有用で正確な情報を少しでも伝えようとするバランスを取る行為」)

ウェブ開発者はUAスニッフィングをできるだけ避けることをお勧めします。現代のウェブプラットフォームの機能はほぼすべて簡単に検出できます。たとえば、モダニザーライブラリは、機能を検出するための素晴らしい簡単な方法です。

過去 1 年間、Microsoft Edge を検出するように更新された UA スニッフィング サイトがいくつか見られましたが、それらはレガシー IE11 コード パスを提供するだけでした。Microsoft Edge は IE11 の動作ではなく「WebKit」の動作に一致するため、これは最適なアプローチではありません (Edge と WebKit の違いは、修正が必要なバグです)。

私たちの経験では、Microsoft Edge はこれらのサイトの「WebKit」コード パスで最もよく動作します。また、インターネットはより多様なデバイスで利用できるようになるため、未知のブラウザーでも問題ないと考えてください。サイトを現在知られている少数のブラウザーのみで動作するように制限しないでください。これを行うと、将来的にサイトが壊れることはほぼ確実です。

結論

Chrome UA 文字列を提示することで、開発者が使用しているハックを回避し、ユーザーに最高のエクスペリエンスを提供できます。

出典Microsoft Edge のユーザー エージェント文字列名は何ですか?回答者デイブ・ボイルズ

関連情報