ユーザーエージェント情報の中身
それでは、実際にユーザーエージェント情報として、どんな内容が送られてくるのかを見てみることにしましょう。ユーザーエージェント情報としてブラウザから送られてくるデータは、以下のようなものになっています。
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
これだけみると非常にわかりにくいのですが、これはInternet Explorer 6.0が送ってくるユーザーエージェント情報です。よくみると「MSIE 6.0」という文字列が入っているのがわかります。これはMicroSoft Internet Explorerの略で、ここからInternet Explorerの6.0であることがわかります。これが例えば現在ベータ版が公開中のInternet Explorer 7.0であれば、「MSIE 7.0」という文字が入ります。
また、「Windows NT 5.1」はWindows XPを意味する内部バージョンで、このことからこのアクセスがWindows XPからであることもわかります。これが例えばFirefoxなら、以下のようなユーザーエージェント情報になります。
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; ja-JP-mac; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
この場合は、Firefoxの1.5.0.6です。さらに「Macintosh; U; PPC Mac OS X...」という記述があることから、Mac OS Xからのアクセスであることもわかります。このように、ユーザーエージェント情報からはアクセスに利用されたブラウザやOSの種類、バージョンなどを知ることができます。図5にユーザーエージェントの例を示します。
| ブラウザ名 | ユーザーエージェント情報 |
| Internet Explorer | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) |
| Firefox | Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6 |
| Opera | Opera/9.00 (Windows NT 5.1; U; ja) |
| Safari | Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3 |
| Sleipnir | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705) Sleipnir/2.41 |
| DoCoMo携帯 | DoCoMo/2.0 SO902i(c100;TB;W30H16) |
| AU携帯 | KDDI-CA33 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0 |
| Vodafone携帯 | Vodafone/1.0/V905SH/SHJ001 Browser/VF-NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 |
ユーザーエージェント情報は、そのままでも人間が読むことも可能ではありますが、決してわかりやすいものではないので、アクセス解析ツールはこれを解析して、ブラウザ名やOSのバージョンを抜き出して利用しています。
ちなみにユーザーエージェント情報の書き方にも、一応簡単なルールはあります。ルールといってもブラウザ名とバージョンは「/」で区切るとか、コメントは括弧で囲めば何を書いても自由、といった程度のもので、しかもそれを守らなくてもほとんどのサーバはまったく問題なくデータを返します。そのため基本的にはかなり自由に記述されており、そのルールすら守られていない場合も見受けられます。ブラウザによってそのスタイルが異なっていて、いろいろな書き方がされているのがわかります。
なお、多くのユーザーエージェントが「Mozilla」という文字列を含んでいますが、これはMozillaがもともとNetscapeというブラウザの開発名で、Netscapeの送るユーザーエージェントに含まれていた文字列でした(現在はNetscapeの流れを汲むMozillaというブラウザも存在します)。
そんなMozillaという文字をなぜほかのブラウザもつけているのかというと、これには歴史的な経緯があります。かつて、Internet Explorerが開発される以前、Netscapeがブラウザ市場を独占していた時代がありました。その理由はNetscapeが当時存在したほかのブラウザと比べてずっと高機能だったためです。
例えばjavaScriptが初めて搭載されたのもNetscapeです。当時存在したWebサイトはNetscapeの機能を活用したページを公開するために、ユーザーエージェント情報をチェックして「Mozilla」という文字が含まれていたらNetscape用の高機能なページを、それ以外なら(当時の)どんなブラウザでも見られるシンプルなページを公開する、ということをしているケースもあったのです。
そのため、後発のブラウザは皆、ユーザーエージェント情報に「Mozilla」という文字を含めることで、そうした高機能なページにアクセスできるようにしました。その名残が、現在までずっと受け継がれてきているのです。
コラム:おかしなユーザーエージェント情報
本文中で、ユーザーエージェント情報の書き方はブラウザによって大きく異なることを述べました。ブラウザやWebサーバはユーザーエージェントを単なる文字の羅列としてやり取りするので、実際にはどんな文字であってもやり取りが可能です。しかも実際のユーザーエージェント名は前述のUser Agent Switcherを使った方法などを利用すれば、簡単に変更ができてしまいます。
したがって、ユーザーエージェントは比較的「うそが言いやすい」情報だということはできます。とはいっても、ほとんどのユーザーやプログラムは正しい情報を送ってくるのですが(そうしないと正しく見ることができないWebサイトなども存在するので)、中にはそれを書き換えてへんてこなユーザーエージェント情報を送ってくる人もいます。「へんてこなユーザーエージェント情報」とは、例えば以下のようなものです。
図6 へんてこなユーザーエージェント情報[゚д゚]<オジャマシマス PC-6001/N60-BASIC Family Computer (6502 Compatible / with Disc System) お楽しみ宇宙袋 Mario/4.0 (compatible; NTFB 6.0; Family Basic 5.1; V17; .NET CLR 6.21.1984) Hanamogella/1.05 [ja] (Win95; U) MSX-BASIC/2.1 (MSX-DOS2.0; MSX2+; Z80) Nutscrape/1.0 (CP/M; 8-bit) orzilla/4.0 (MouDamepo_//○、) Time Machine Network スタローン専用ブラウザ
「[゚д゚]<オジャマシマス」などは明らかに変だとわかりますが、「PC-6001/N60-BASIC」や「Family Computer (6502 Compatible / with Disc System)」はぱっと見ただけでは普通のユーザーエージェント情報のようにも見えます。しかしよくみると、「PC-6001」は20年以上前にNECが発売していた8ビットのパソコンで、実は筆者がはじめて触ったコンピュータなので、筆者自身としては思い出深いものではありますが、インターネットにはさすがにつながるとは思えませんし、「Family Computer (6502 Compatible / with Disc System)」などは初代ファミコン(しかもディスクシステム付き)だったりして、明らかにだれかがジョークとして書いたものです。こうした古いコンピュータで本当にアクセスしている人がいたら面白いなあ、とは思いますが、さすがにその可能性は低そうです。
こうした明らかに「ネタ」と認識できるユーザーエージェントは、アクセス解析にとってはノイズになってしまう迷惑な存在だともいえますが、非常に面白いものだという見方もできます。筆者も変わったユーザーエージェントをチェックするプログラムを書いて、時折こうした変わったユーザーエージェント情報を収集しています。
ただしこうしたユーザーエージェント情報は、一般的なアクセス解析ツールを利用していると「不明」に分類されたり、そうでなくてもアクセス数が「Internet Explorer」などに比べれば圧倒的に少ないため、ほとんど目にすることができないのが、残念といえば残念です。
