ユーザーエージェント情報は必須の情報ではない
さて、このユーザーエージェント情報ですが、Webへのアクセスで必ず送られてくるとは限りません。第1回において、アクセス時に取得できる情報の多くはクライアントが「自主的に」送ってくる情報であり、必ず取得できるわけではない、ということを解説しました。ユーザーエージェント情報に関しても、やはりアクセスに必須の情報ではなく、クライアントが自主的に送ってくる情報なのです。
必須じゃないにもかかわらず、多くのクライアントが正しく自分の名前などを名乗ってくる理由は、第1回でも解説したように、それによって「より自分にとってふさわしい」データをブラウザから得られるようにするためです。Webページを構成するHTMLやCSS、JavaScriptといったデータの解釈は、ブラウザの種類やバージョンによって微妙に異なります。さらには携帯電話からのアクセスなど、そもそも表示性能が大きく異なる環境からのアクセスもあります。こうしたさまざまなアクセス環境の差異にサーバ側が対応できるように、ユーザーエージェント情報を送ってくるのです。

例えば、同じURLに対して、パソコンのブラウザからアクセスした場合にはパソコン用のWebページが、携帯電話からアクセスした場合には携帯電話用のページが表示されるサイトはよくありますが、こうしたサイトでも、ユーザーエージェント情報を元にアクセスしてきたのがパソコンなのか、携帯電話なのかを判断しています。
さらに、携帯電話の場合はキャリア(携帯電話会社)によってWebページの表示能力が違うため、携帯電話用のWebページではアクセスしてきた携帯電話のキャリアをユーザーエージェントから判別して、それぞれに適したデータを送る工夫なども行われています。
ただしほとんどのクライアントが正しく情報を送ってくるとはいえ、クライアントの環境や、利用しているプログラムによってはユーザーエージェントが送られてこないこともあり、その場合は例えばアクセス解析では「不明」になってしまいます。
例えばインターネットセキュリティソフトウェアの中には、ユーザーエージェント情報を「プライバシーにかかわる情報」であるとして、その一部を書き換えて、ほとんどの情報を識別できないようにするものもあります。
コラム:User Agent Switcherでユーザーエージェントによる挙動の違いを体験
Firefoxでは、送信するユーザーエージェント情報を変更するための「User Agent Switcher」という機能拡張が公開されています。これを利用すると、Webサイトがユーザーエージェントによって表示する内容を変更していることを、実際に体験することができます。
User Agent Switcherは、ユーザーエージェント情報として好きな文字列を指定できるので、例えば、ユーザーエージェントを以下のように設定してみます。DoCoMo/2.0 N902i(c100;TB;W24H12)これはNTTドコモの携帯(N902i)のユーザーエージェント名です。これを設定した上でGoogleにアクセスすると、実際のブラウザはFirefoxであるにもかかわらず、携帯用のページが表示されます。携帯電話のユーザーエージェントでは携帯電話用のページが表示される
これはGoogleがユーザーエージェント名によって表示するページを変化させているからです。


