技術ノート 特徴 ブラウザのユーザーエージェントとは何ですか?

ブラウザのユーザーエージェントとは何ですか?

ブラウザのユーザーエージェントとは何ですか?

ブラウザは、接続するすべての Web サイトにユーザー エージェントを送信します。 ブラウザのユーザー エージェントの変更 については以前に書きましたが、そもそもユーザー エージェントとは何でしょうか?

ブラウザのユーザーエージェントとは何ですか?

ユーザー エージェントは、Web サーバーに対してブラウザとオペレーティング システムを識別する「文字列」、つまりテキスト行です。これは簡単なことのように聞こえますが、ユーザー エージェントは時間の経過とともに混乱してきました。

基礎

ブラウザのユーザーエージェントとは何ですか?

ブラウザが Web サイトに接続すると、HTTP ヘッダーに User-Agent フィールドが含まれます。ユーザー エージェント フィールドの内容はブラウザごとに異なります。各ブラウザには独自の独特のユーザー エージェントがあります。基本的に、ユーザー エージェントは、ブラウザが Web サーバーに対して「こんにちは、Windows の Mozilla Firefox です」または「こんにちは、iPhone の Safari です」と伝える手段です。

Web サーバーはこの情報を使用して、さまざまな Web ページをさまざまな Web ブラウザーやさまざまなオペレーティング システムに提供できます。たとえば、Web サイトはモバイル ページをモバイル ブラウザーに送信し、モダン ページをモダン ブラウザーに送信し、「ブラウザーをアップグレードしてください」メッセージを Internet Explorer 6 に送信することができます。

ブラウザのユーザーエージェントとは何ですか?

ユーザーエージェントの調査

たとえば、Windows 7 上の Firefox のユーザー エージェントは次のとおりです。

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0

このユーザー エージェントは、Web サーバーにかなりの情報を伝えます。オペレーティング システムは Windows 7 (コード名 Windows NT 6.1)、Windows の 64 ビット バージョン (WOW64)、ブラウザ自体は Firefox 12 です。

次に、Internet Explorer 9 のユーザー エージェントを見てみましょう。

Mozilla/5.0 (互換性; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

ユーザー エージェント文字列は、ブラウザが Trident 5 レンダリング エンジンを備えた IE 9 であることを識別します。ただし、紛らわしいことに気づくかもしれません。IE は自身を Mozilla として認識しています。

これについては後ほど説明します。まず、Google Chrome のユーザー エージェントも調べてみましょう。

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML、Gecko など) Chrome/19.0.1084.52 Safari/536.5

陰謀はさらに深まります。Chrome は Mozilla と Safari の両方のふりをしています。その理由を理解するには、ユーザー エージェントとブラウザの歴史を調べる必要があります。

ブラウザのユーザーエージェントとは何ですか?

ユーザーエージェント文字列の混乱

Mosaic は最初のブラウザの 1 つです。そのユーザー エージェント文字列は NCSA_Mosaic/2.0 でした。その後、Mozilla (後に Netscape に改名) が登場し、そのユーザー エージェントは Mozilla/1.0 でした。 Mozilla は Mosaic よりも高度なブラウザであり、特にフレームをサポートしていました。 Web サーバーは、ユーザー エージェントに Mozilla という単語が含まれていることを確認し、フレームを含むページを Mozilla ブラウザに送信しました。他のブラウザには、Web サーバーがフレームなしの古いページを送信しました。

最終的に、Microsoft の Internet Explorer が登場し、フレームもサポートされました。ただし、Web サーバーはフレームを含む Web ページを Mozilla ブラウザに送信するだけなので、IE はフレーム付きの Web ページを受信しませんでした。この問題を解決するために、Microsoft はユーザー エージェントに Mozilla という単語を追加し、追加情報 (「互換性」という単語と IE への参照) を投入しました。Web サーバーは Mozilla という単語を喜んで認識し、IE に最新の Web ページを送信しました。後から登場した他のブラウザも同じことを行いました。

最終的に、一部のサーバーは Gecko (Firefox のレンダリング エンジン) という単語を検索し、古いブラウザとは異なるページを Gecko ブラウザに提供しました。 KHTML (もともと Linux の KDE デスクトップ上の Konquerer 用に開発されたもの) には、「Gecko のように」という言葉が追加され、最新のページも Gecko 用に設計されるようになりました。 WebKit は KHTML に基づいていました。開発時に WebKit という単語が追加され、互換性を確保するために元の「Gecko のような KHTML」という行が残されました。このようにして、ブラウザー開発者は時間の経過とともにユーザー エージェントに単語を追加し続けました。

Web サーバーは、正確なユーザー エージェント文字列が何であるかをあまり気にしません。ただ、特定の単語が含まれているかどうかを確認するだけです。

ブラウザのユーザーエージェントとは何ですか?

用途

Web サーバーは、次のようなさまざまな目的でユーザー エージェントを使用します。

  • 異なる Web ページを異なる Web ブラウザに提供します。これは、より単純な Web ページを古いブラウザに提供するなど、良い方向に使用されることもあれば、「この Web ページは Internet Explorer で表示する必要があります」というメッセージを表示するなど、悪い方向に使用されることもあります。
  • 異なるオペレーティング システムに異なるコンテンツを表示する – たとえば、モバイル デバイスにスリム化されたページを表示することによって。
  • ユーザーが使用しているブラウザとオペレーティング システムを示す統計を収集します。ブラウザの市場シェア統計を見たことがあれば、これがその統計の取得方法です。

Web クローリング ボットもユーザー エージェントを使用します。たとえば、Google の Web クローラーは、自分自身を次のように識別します。

Googlebot/2.​​1 (+http://www.google.com/bot.html)

Web サーバーは、ボットに必須の登録画面を通過させるなど、特別な扱いを与えることができます。 (はい、これは、ユーザー エージェントを Googlebot に設定することで登録画面をバイパスできる場合があることを意味します。)

Web サーバーは、robots.txt ファイルを使用して特定のボット (またはすべてのボット) に命令を与えることもできます。たとえば、Web サーバーは特定のボットに終了するように指示したり、別のボットに Web サイトの特定の領域のみをインデックスするように指示したりできます。 robots.txt ファイルでは、ボットはユーザー エージェント文字列によって識別されます。


すべての主要なブラウザには カスタム ユーザー エージェントを設定する 方法が含まれているため、Web サーバーがさまざまなブラウザに送信するものを確認できます。たとえば、デスクトップ ブラウザをモバイル ブラウザのユーザー エージェント文字列に設定すると、デスクトップに Web ページのモバイル バージョンが表示されます。

「ブラウザのユーザーエージェントとは何ですか?」に関するベスト動画選定!

おじいちゃん!ヤフーとブラウザは違うよ!【インターネット基礎用語ざっくり説明】
【5分でわかる】ブラウザーの拡張機能の設定と使い方を紹介します。ChromeとEdgeを利用するなら、ぜひ拡張機能は抑えておきましょう。