ユーザーエージェントとは
ユーザーエージェント(User Agent)とは、利用者が特定のプロトコルに従ってデータを利用する際に用いる
ソフトウェアや
ハードウェアのことです。特に、HTTP(
Hypertext Transfer Protocol)を用いて
World Wide Webにアクセスする際に、ウェブブラウザなどがユーザーエージェントとして機能します。
HTTPユーザーエージェント
HTTPを用いてリソースの取得などを行うユーザーエージェントは、HTTPユーザーエージェントと呼ばれます。これには、ウェブブラウザの他に、ウェブサイトの情報を収集する
クローラ(Web
クローラー)などが含まれます。
User-Agentヘッダー
HTTPリクエストを送る際、クライアントはUser-Agentヘッダーを通じて、自身の情報を
サーバーに伝えます。このヘッダーには、アプリケーション名、バージョン、使用しているオペレーティングシステムや言語などの情報が含まれます。
ウェブ
クローラーの場合、ウェブサイトの管理者が連絡を取れるように、URLやメールアドレスが記載されることもあります。
User-Agentヘッダーの利用
サーバー側では、User-Agentヘッダーの情報をもとに、以下の様な処理を行います。
アクセス解析: ユーザーが使用しているブラウザの種類やバージョンを集計し、Webサイトの利用状況を分析します。
クローラーの制御: ロボット排除基準(robots.txt)に基づき、特定の
クローラーのアクセスを制限します。これにより、特定のページへのアクセスを禁止したり、過剰な帯域消費を防いだりすることができます。
ただし、User-Agentヘッダーの値はあくまでクライアント側からの自己申告であるため、実際とは異なる値を送信することも可能です。
ユーザーエージェント・スニッフィング
ユーザーエージェント・スニッフィングとは、WebサイトがUser-Agentヘッダーの情報に基づいて、表示内容を切り替えたり、特定のユーザーエージェントにのみコンテンツを表示したりする技術です。この技術は、ブラウザの種類やバージョンによって表示が異なる問題を解決するために用いられてきましたが、特定のブラウザに最適化されたWebサイトを制作すると、他のブラウザでは正常に動作しないという問題も発生しました。
過去には、モバイル向けのWebサイトで、User-Agentヘッダーに基づいて表示を切り替えることが一般的に行われていました。しかし、User-Agentヘッダーの偽装が容易であったため、
IPアドレスから携帯電話かどうかを判断することもありました。
ユーザーエージェントの偽装
User-Agentヘッダーの偽装は、ユーザーエージェント・スニッフィングによる問題を回避するために行われました。
例えば、初期の
Internet Explorerは「Mozilla/<version> (compatible; MSIE <version>...)」というUser-Agentヘッダーを使っていました。これは、当時の主要な競合ブラウザであったNetscape Navigator(コードネームが「Mozilla」)向けに作成されたコンテンツを正しく表示させるための措置でした。
その後、多くのブラウザがこの形式を模倣し、競合するブラウザのWebサイトを閲覧できるようにUser-Agentヘッダーの変更機能を実装しました。ダウンロードマネージャーやオフラインブラウザでも、同様の機能が提供されています。現在では、Web標準に準拠したサイトが増えたため、User-Agentヘッダーの偽装は以前ほど重要ではなくなっています。
暗号強度
初期のNetscape、Mozilla、
Operaなどでは、ブラウザの暗号強度をUser-Agentヘッダーに含めることがありました。アメリカ合衆国では、40ビットを超える暗号の国外輸出が規制されていたため、暗号強度の異なるバージョンがリリースされていました。「U」は128ビット暗号化、「I」は40ビット暗号化を意味しました。「N」は暗号化なしを表しました。この暗号強度の識別もUser-Agentヘッダーの利用方法の一例です。
Session Initiation Protocol (SIP)を解釈して処理する
ソフトウェアや
ハードウェアも、ユーザーエージェントと呼ばれます。これには、SIPに対応したIP電話機やVoIPゲートウェイが含まれます。
関連項目
Hypertext Transfer Protocol (HTTP)
電子メールクライアント
ソフトウェアエージェント
参考文献
JIS X 0032:1999「情報処理用語−電子メール」
JIS X 4156:2005「ハイパテキストマーク付け言語 (HTML)」
外部リンク
Panopticlick: 使用中のブラウザのUser-Agentが個人の識別に使われうるかを判定する電子フロンティア財団のページ
以上がユーザーエージェントに関する詳細な解説です。