用語「User-Agent」について
User-Agent (ゆーざーえーじぇんと)
HTTP要求ヘッダの中のフィールドの一つで、ユーザエージェントの名前、バージョンを記します。RFC2616の定義によれば、このフィールドの書式は以下の通りです。
User-Agent = "User-Agent" ":" 1*( product | comment )
以上、RFC2616 より
ちなみに product の書式は以下の通り。
product = token ["/" product-version]
product-version = token
以上、RFC2616 より
User-Agent の値は 1*( product | comment ) なので、product が複数現れても構いません。コメントだけでも OK です。また、User-Agent フィールド自体は必須ではないので、フィールド自体を省略することもできます (というか HTTP/1.1 で必須なのは Host: フィールドくらいで、他のほとんどのフィールドは省略できますが)。
あまり知られていないようですが、User-Agent の括弧内は実はコメントです。ですので、IE の以下のような User-Agent は……。
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)
Mozilla/4.0 というのが本体で、後ろの括弧内は全てコメントなのです。コメントはコメントなので、コメントの内容によって挙動が変わったりするのはおかしいような気もするのですが、コメントの中身を見ないと MSIE と Mozilla の見分けがつかなかったりするわけで……。
ロボットなどでは、このコメント内に説明の URL や問い合わせ先のメールアドレスが書かれていることがあります。
「User-Agent」に関連する用語
- ユーザーエージェント
- HTTP/1.1
- RFC2616
- 「User-Agent」にコメントを書く