「ユーザーエージェント」の版間の差分
Android-marionette (会話 | 投稿記録) m →ブラウザ |
編集の要約なし |
||
1行目: | 1行目: | ||
'''ユーザーエージェント''' (User agent、略称'''UA'''(ユー エー))とは、利用者がある[[プロトコル]]に基づいてデータを利用する際に用いる[[ソフトウェア]]または[[ハードウェア]]を指す。「'''利用者エージェント'''」とも言う。 |
'''ユーザーエージェント''' (User agent、略称'''UA'''(ユー エー))とは、利用者がある[[プロトコル]]に基づいてデータを利用する際に用いる[[ソフトウェア]]または[[ハードウェア]]を指す。「'''利用者エージェント'''」とも言う。 |
||
[[Hypertext Transfer Protocol|HTTP]]を用いて[[World Wide Web]]にアクセスするための「[[ウェブブラウザ]]」が代表的なユーザーエージェントの |
[[Hypertext Transfer Protocol|HTTP]]を用いて[[World Wide Web]]にアクセスするための「[[ウェブブラウザ]]」が代表的なユーザーエージェントの1つであるが、「ユーザーエージェント」という名称はそれに限られる訳ではない。例えば、人間が電子メールを送受信する際に用いるユーザーエージェントは、[[電子メールクライアント|メールユーザーエージェント]]である<ref>電子メールクライアントや電子メールクライアントと呼ばれることもある。詳細は[[電子メールクライアント]]の項目を参照のこと。</ref>。 |
||
1つのプロトコルに対応しているユーザーエージェントの中でも、その性質により更に細分化されて名称を使い分けることがある。HTTPユーザーエージェントとして一般的に用いられているものとして前述したウェブブラウザがあるが、その他にも[[検索エンジン]]の[[クローラ]]などが存在する。 |
1つのプロトコルに対応しているユーザーエージェントの中でも、その性質により更に細分化されて名称を使い分けることがある。HTTPユーザーエージェントとして一般的に用いられているものとして前述したウェブブラウザがあるが、その他にも[[検索エンジン]]の[[クローラ]]などが存在する。 |
||
24行目: | 24行目: | ||
で始まるユーザーエージェント文字列を使っていたことである<ref>ここでいう''Mozilla''はNetscape Navigatorのコードネームである。その後、[[オープンソース]]ソフトウェアとして公開された[[Mozilla Application Suite|Mozilla]]とは別のものであることには注意。</ref>。これは、その開発当時Internet Explorerの主たる競合者だった[[Netscape Navigator (ネットスケープコミュニケーションズ)|Netscape Navigator]]用に設計された内容を受け取るためだった。その後、[[ブラウザ戦争]]においてMicrosoft Internet Explorerが優位を占めて来たために、このユーザーエージェント文字列のフォーマットは、部分的に他のユーザーエージェントによってコピーされていった。 |
で始まるユーザーエージェント文字列を使っていたことである<ref>ここでいう''Mozilla''はNetscape Navigatorのコードネームである。その後、[[オープンソース]]ソフトウェアとして公開された[[Mozilla Application Suite|Mozilla]]とは別のものであることには注意。</ref>。これは、その開発当時Internet Explorerの主たる競合者だった[[Netscape Navigator (ネットスケープコミュニケーションズ)|Netscape Navigator]]用に設計された内容を受け取るためだった。その後、[[ブラウザ戦争]]においてMicrosoft Internet Explorerが優位を占めて来たために、このユーザーエージェント文字列のフォーマットは、部分的に他のユーザーエージェントによってコピーされていった。 |
||
Internet Explorerが市場のトップシェアを占めたとき、 [[Mozilla Firefox]] 、 [[Safari]] や [[Opera]] のようなライバルは、Internet Explorerの最新版を装うなど、ユーザーエージェントなどの情報をユーザー側の操作で変更できるシステムを採用した。例えば Firefox や Safari のような一部のブラウザはそれらが偽装しようとしているユーザーエージェント文字列を正確に複写する(Mozilla Firefoxの場合デフォルトでは詳細な設定値を直接変更しなければならないが、User Agent Switcherという拡張機能によりメニューからユーザーエージェントの設定を操作することが出来るようになる)。この方法を用いることでInternet Explorerではないブラウザの利用を拒むサイトも一部閲覧できるようになる場合がある<ref>ただし機能をInternet Explorerに特化させている場合があるため必ずしも正常に利用できるとは限らず、閲覧は出来ても主な機能はInternet Explorerでしか利用できないと言ったケースも存在する</ref>。 |
Internet Explorerが市場のトップシェアを占めたとき、 [[Mozilla Firefox]] 、 [[Safari]] や [[Opera]] のようなライバルは、Internet Explorerの最新版を装うなど、ユーザーエージェントなどの情報をユーザー側の操作で変更できるシステムを採用した。例えば Firefox や Safari のような一部のブラウザはそれらが偽装しようとしているユーザーエージェント文字列を正確に複写する(Mozilla Firefoxの場合デフォルトでは詳細な設定値を直接変更しなければならないが、User Agent Switcherという拡張機能によりメニューからユーザーエージェントの設定を操作することが出来るようになる)。この方法を用いることでInternet Explorerではないブラウザの利用を拒むサイトも一部閲覧できるようになる場合がある<ref>ただし機能をInternet Explorerに特化させている場合があるため必ずしも正常に利用できるとは限らず、閲覧は出来ても主な機能はInternet Explorerでしか利用できないと言ったケースも存在する。</ref>。 |
||
また、Operaの場合偽装時にはユーザーエージェント文字列を複写するが、その文字列の最後に本物のブラウザ名を加える。後者のアプローチでは、当然ながら文字列は3つの名前とバージョンを含んでいることになる。最初に、ユーザーエージェントは「Mozilla」(すなわちNetscape Navigator)、それから、「MSIE」(Internet Explorer)、そして最後に「Opera」のような本当の正体を主張する。ただしこの方法では末尾のOperaという文字列を検索されInternet Explorerではないと判別されるケースがあるため、完全にInternet Explorerとして偽装する機能がバージョン8まで隠し機能として装備されており、バージョン9以降では[[グラフィカルユーザインタフェース|GUI]]からの操作機能が加わった。 |
また、Operaの場合偽装時にはユーザーエージェント文字列を複写するが、その文字列の最後に本物のブラウザ名を加える。後者のアプローチでは、当然ながら文字列は3つの名前とバージョンを含んでいることになる。最初に、ユーザーエージェントは「Mozilla」(すなわちNetscape Navigator)、それから、「MSIE」(Internet Explorer)、そして最後に「Opera」のような本当の正体を主張する。ただしこの方法では末尾のOperaという文字列を検索されInternet Explorerではないと判別されるケースがあるため、完全にInternet Explorerとして偽装する機能がバージョン8まで隠し機能として装備されており、バージョン9以降では[[グラフィカルユーザインタフェース|GUI]]からの操作機能が加わった。 |
||
30行目: | 30行目: | ||
これらの動きに対抗し、[[Mozilla]]は[[Gecko]]系ユーザーエージェントの識別に「Gecko」の文字列を使用することを決定し、この文字列をユーザーエージェント名に使用しないように通達を出した。しかし、この通達は[[Safari]]によって破られた。[[Mozilla Firefox]]や[[SeaMonkey]]ではユーザーエージェント名の最後にソフトウェア名を入れることでユーザーエージェント名を識別するようにしている。 |
これらの動きに対抗し、[[Mozilla]]は[[Gecko]]系ユーザーエージェントの識別に「Gecko」の文字列を使用することを決定し、この文字列をユーザーエージェント名に使用しないように通達を出した。しかし、この通達は[[Safari]]によって破られた。[[Mozilla Firefox]]や[[SeaMonkey]]ではユーザーエージェント名の最後にソフトウェア名を入れることでユーザーエージェント名を識別するようにしている。 |
||
上述のとおり[[Safari]]を |
上述のとおり[[Safari]]を始めとする[[WebKit]]系ブラウザは[[Mozilla]]を偽装している。この行為は[[Mozilla]]陣営は勿論のこと[[Konqueror]]を始めとする[[KHTML]]陣営からも批判が相次いだが、最終的には[[Konqueror]]もSafariの動きに同調した。 |
||
このようなユーザーエージェント偽装が一般に広く普及しているため、ブラウザが偽装するユーザーエージェントであるInternet Explorerの使用シェアが過大に見積もられ、そして他のブラウザの使用シェアが過小評価されているのではないかという見方もある。 |
このようなユーザーエージェント偽装が一般に広く普及しているため、ブラウザが偽装するユーザーエージェントであるInternet Explorerの使用シェアが過大に見積もられ、そして他のブラウザの使用シェアが過小評価されているのではないかという見方もある。 |
||
Webブラウザ以外でも、大部分の[[ダウンロードマネージャー]]や[[オフラインブラウザ]]のように HTTP を利用しているプログラムは、同様にサーバに送られるユーザーエージェント文字列をユーザーの好みに変える機能を持っている。これは恐らく、ある特定のサーバとの互換性を維持するための工夫である。こうしたプログラムは |
Webブラウザ以外でも、大部分の[[ダウンロードマネージャー]]や[[オフラインブラウザ]]のように HTTP を利用しているプログラムは、同様にサーバに送られるユーザーエージェント文字列をユーザーの好みに変える機能を持っている。これは恐らく、ある特定のサーバとの互換性を維持するための工夫である。こうしたプログラムは大抵不注意に使われサーバに重い負荷を与えるために、一部のサーバは直ちにそれらのプログラムをサポートすることを拒否したためである。 |
||
<!-- これってどういうキャンペーン?実態が不明なのでコメントアウト。議論はノートで。 |
<!-- これってどういうキャンペーン?実態が不明なのでコメントアウト。議論はノートで。 |
||
Webブラウザの範疇では、この悪循環は終わらないだろうと予想される。そこで一部の標準をベースとするウェブ開発者は、いずれか特定のブラウザを想定するのではなく、公式の標準に従ってウェブページを設計するように奨励する「どんなブラウザでも閲覧可能」キャンペーンを始めた。 |
Webブラウザの範疇では、この悪循環は終わらないだろうと予想される。そこで一部の標準をベースとするウェブ開発者は、いずれか特定のブラウザを想定するのではなく、公式の標準に従ってウェブページを設計するように奨励する「どんなブラウザでも閲覧可能」キャンペーンを始めた。 |
||
49行目: | 48行目: | ||
一種の自己表現として用いられているケースも散見される。 |
一種の自己表現として用いられているケースも散見される。 |
||
<!-- 推奨できないという根拠が薄弱 |
<!-- 推奨できないという根拠が薄弱 |
||
プロトコル上は送られるべきでないバイト列を送っていることも多く、推奨はできない<ref>とはいえ、大抵の場合はWebブラウザのユーザーエージェントの偽装機能を用いてるため、プロトコル上送られるべきではないバイト列を送出してしまうWebブラウザの問題といえる。</ref>。 |
プロトコル上は送られるべきでないバイト列を送っていることも多く、推奨はできない<ref>とはいえ、大抵の場合はWebブラウザのユーザーエージェントの偽装機能を用いてるため、プロトコル上送られるべきではないバイト列を送出してしまうWebブラウザの問題といえる。</ref>。 |
||
--> |
--> |
||
=== ユーザーエージェント・スニッフィング === |
=== ユーザーエージェント・スニッフィング === |
||
ユーザーエージェント・スニッフィングとは、特定のユーザーエージェントで閲覧すると異なった内容を示すウェブサイトを指す。インターネットでは、特定のブラウザでページを閲覧すると異なる結果が表示されるという結果になるだろう(例えば Microsoft Internet Explorer)。この悪名高い例は、マイクロソフトの[[Outlook]] 2003ウェブアクセスである。Internet Explorerで閲覧すると、他のいかなるブラウザと比較してもずっと多くの機能性が示されるのである。ユーザーエージェント・スニッフィングを使うとブラウザに特化したデザインを奨励することになるので、 |
ユーザーエージェント・スニッフィングとは、特定のユーザーエージェントで閲覧すると異なった内容を示すウェブサイトを指す。インターネットでは、特定のブラウザでページを閲覧すると異なる結果が表示されるという結果になるだろう(例えば Microsoft Internet Explorer)。この悪名高い例は、マイクロソフトの[[Outlook]] 2003ウェブアクセスである。Internet Explorerで閲覧すると、他のいかなるブラウザと比較してもずっと多くの機能性が示されるのである。ユーザーエージェント・スニッフィングを使うとブラウザに特化したデザインを奨励することになるので、大抵ユーザーエージェント・スニッフィングは好ましくない行為であると見なされる。多くのウェブ担当者が、可能な限り多くのブラウザで正しいレンダリングできるように、可能な限り標準化されたHTMLマークアップを使うことが推奨される。しかし日本国内ではマイクロソフトのプロダクトへの依存度が高いため<ref>http://internet.watch.impress.co.jp/cda/news/2005/05/13/7593.html</ref>IEに特化されたサイトがまだまだ多いというのが現状である。 |
||
携帯電話向けのウェブサイト(特にNTTドコモの[[iモード]]や[[KDDI]]の[[EZweb]]、[[ソフトバンクモバイル|SoftBank]]の[[Yahoo!ケータイ]]のような)では、携帯電話のブラウザがしばしば互いに大きく異なるために、しばしば頻繁にユーザーエージェント・スニッフィングに大いに頼っている(前述のようにユーザーエージェントの偽装が容易に可能であるという理由から、ユーザーエージェントに依存せず接続された[[IPアドレス]]をもとに携帯電話か否かを判断していることも多い)。ここ数年で携帯端末からの閲覧において多くの開発がなされた一方で、これらの新しい技術を持たない多くのより古い電話がまだ頻繁に使われている。従って、携帯端末向けのウェブポータルは、しばしばそれらを閲覧するために使った携帯電話によって完全に異なったマークアップ・コードを生成する。これらの相違は、小さい(例えば小さいスクリーンに合うように特定の画像のサイズを変える)こともあるし、あるいは非常に大規模のこともあり得る(例えば[[Extensible HyperText Markup Language|XHTML]] の代わりに[[Wireless Markup Language|WML]]でページを表現する)。 |
携帯電話向けのウェブサイト(特にNTTドコモの[[iモード]]や[[KDDI]]の[[EZweb]]、[[ソフトバンクモバイル|SoftBank]]の[[Yahoo!ケータイ]]のような)では、携帯電話のブラウザがしばしば互いに大きく異なるために、しばしば頻繁にユーザーエージェント・スニッフィングに大いに頼っている(前述のようにユーザーエージェントの偽装が容易に可能であるという理由から、ユーザーエージェントに依存せず接続された[[IPアドレス]]をもとに携帯電話か否かを判断していることも多い)。ここ数年で携帯端末からの閲覧において多くの開発がなされた一方で、これらの新しい技術を持たない多くのより古い電話がまだ頻繁に使われている。従って、携帯端末向けのウェブポータルは、しばしばそれらを閲覧するために使った携帯電話によって完全に異なったマークアップ・コードを生成する。これらの相違は、小さい(例えば小さいスクリーンに合うように特定の画像のサイズを変える)こともあるし、あるいは非常に大規模のこともあり得る(例えば[[Extensible HyperText Markup Language|XHTML]] の代わりに[[Wireless Markup Language|WML]]でページを表現する)。 |
||
234行目: | 232行目: | ||
== 暗号強度「U」/「I」/「N」 == |
== 暗号強度「U」/「I」/「N」 == |
||
Netscape、Mozilla、Opera、その他一部のブラウザでは、ブラウザの暗号強度を示すためにU, I, Nの3個の文字を使用する。米国政府は40ビットを越える暗号をアメリカから国外へ輸出することを認めないので、暗号強度が異なる |
Netscape、Mozilla、Opera、その他一部のブラウザでは、ブラウザの暗号強度を示すためにU, I, Nの3個の文字を使用する。米国政府は40ビットを越える暗号をアメリカから国外へ輸出することを認めないので、暗号強度が異なる様々なバージョンがリリースされた。「U」は「USA」を表し、128ビットの暗号化を備えたバージョンであることを示す。「I」は「international(国際的)」のiであり、40ビットの暗号化を備えており、世界中のどこでも使用できることを示す。「N」は「none(無し)」を表し、暗号化を行わない。元は、「U」バージョンはアメリカ国内からのみダウンロードが許可されていたが、その後米国政府が方針を緩めたので、今では高い暗号化をするバージョンがほとんどの国々で許されている。現在では国際版がもはや要求されないので、NetscapeとMozillaは「U」バージョンのみを配布している。 |
||
== 関連項目 == |
== 関連項目 == |
2011年4月10日 (日) 22:44時点における版
ユーザーエージェント (User agent、略称UA(ユー エー))とは、利用者があるプロトコルに基づいてデータを利用する際に用いるソフトウェアまたはハードウェアを指す。「利用者エージェント」とも言う。
HTTPを用いてWorld Wide Webにアクセスするための「ウェブブラウザ」が代表的なユーザーエージェントの1つであるが、「ユーザーエージェント」という名称はそれに限られる訳ではない。例えば、人間が電子メールを送受信する際に用いるユーザーエージェントは、メールユーザーエージェントである[1]。
1つのプロトコルに対応しているユーザーエージェントの中でも、その性質により更に細分化されて名称を使い分けることがある。HTTPユーザーエージェントとして一般的に用いられているものとして前述したウェブブラウザがあるが、その他にも検索エンジンのクローラなどが存在する。
本項では、HTTPユーザーエージェントに重点を置いて解説する。
HTTPユーザーエージェント
HTTPを用いてWorld Wide Webにあるリソースの取得等を行うユーザーエージェントをHTTPユーザーエージェントと呼ぶ。HTTPユーザーエージェントには、取得したリソースをHTMLレンダリングエンジンで描画するウェブブラウザやリソースを取得しデータベース化するクローラーなどが存在する。
HTTPリクエストでのUser-Agentヘッダ
HTTPではリクエスト中に、各ユーザーエージェントの識別名をユーザーエージェント文字列として申告する。この文字列には「User-Agent: 」という接頭辞が付いて、HTTPリクエストの一部分を形成する。また一般にアプリケーション名、バージョン、ホストオペレーティングシステムや言語といった情報を含んでいる。ウェブクローラーのようなボットの場合、ウェブ担当者がそのボットのオペレーターと連絡を取ることができるように、ボットはしばしばURLや電子メールアドレスも含む。
その情報はサーバ側において様々な用途で利用されている。一例として、アクセス解析で訪問者が使用しているWebブラウザが何かを判別する根拠とされていることが挙げられる。またユーザーエージェント文字列は、「ロボット排除基準」 (robots.txt)を使ってある特定のページあるいはウェブサイトの一部からクローラーを排除するための基準の1つになっている。こうして、ウェブ担当者が、彼らのウェブサイトのある特定の部分が特定のクローラーの集めるデータに含められるべきでない、あるいは特定のクローラーがあまりに多くの帯域を消費していると感じた場合、そのクローラーがそれらのページを訪問しないように要請することができる。
ただし、ユーザーエージェント文字列はあくまでHTTPクライアント側からの自己申告なので、偽装可能である。一部Webブラウザでは、使用者が簡単にユーザーエージェント文字列を変更できる機能を持つ。
ユーザーエージェントの偽装
歴史上のさまざまな時点において、ウェブの利用は1つのブラウザによって独占されてきたために、多くのウェブサイトが、W3CやIETFのような組織が示す標準に従うのではなく、むしろ特定のブラウザだけで動作するように設計されてきた。このようなサイトはしばしば「ブラウザ・スニッフィング」コードを含み、受け取ったユーザーエージェント文字列によって送る情報を変えていた。これはそれほど人気が高くないブラウザは、サイトの内容を正確に扱うことができる場合であっても、複雑な内容を送ってもらえない、極端な場合には全ての内容が拒否されることもあることを意味する。そこで種々のブラウザが、このような検出コードにそれら自身が別の何かであると認知させるためにこの文字列を「覆い隠す」か、あるいは「偽装」する。しばしば、ブラウザの本当の正体はその後の文字列に含められる。
この最も早い例は、Microsoft Internet Explorer(以下、Internet Explorerと記す)で
Mozilla/<version> (compatible; MSIE <version>...
で始まるユーザーエージェント文字列を使っていたことである[2]。これは、その開発当時Internet Explorerの主たる競合者だったNetscape Navigator用に設計された内容を受け取るためだった。その後、ブラウザ戦争においてMicrosoft Internet Explorerが優位を占めて来たために、このユーザーエージェント文字列のフォーマットは、部分的に他のユーザーエージェントによってコピーされていった。
Internet Explorerが市場のトップシェアを占めたとき、 Mozilla Firefox 、 Safari や Opera のようなライバルは、Internet Explorerの最新版を装うなど、ユーザーエージェントなどの情報をユーザー側の操作で変更できるシステムを採用した。例えば Firefox や Safari のような一部のブラウザはそれらが偽装しようとしているユーザーエージェント文字列を正確に複写する(Mozilla Firefoxの場合デフォルトでは詳細な設定値を直接変更しなければならないが、User Agent Switcherという拡張機能によりメニューからユーザーエージェントの設定を操作することが出来るようになる)。この方法を用いることでInternet Explorerではないブラウザの利用を拒むサイトも一部閲覧できるようになる場合がある[3]。
また、Operaの場合偽装時にはユーザーエージェント文字列を複写するが、その文字列の最後に本物のブラウザ名を加える。後者のアプローチでは、当然ながら文字列は3つの名前とバージョンを含んでいることになる。最初に、ユーザーエージェントは「Mozilla」(すなわちNetscape Navigator)、それから、「MSIE」(Internet Explorer)、そして最後に「Opera」のような本当の正体を主張する。ただしこの方法では末尾のOperaという文字列を検索されInternet Explorerではないと判別されるケースがあるため、完全にInternet Explorerとして偽装する機能がバージョン8まで隠し機能として装備されており、バージョン9以降ではGUIからの操作機能が加わった。
これらの動きに対抗し、MozillaはGecko系ユーザーエージェントの識別に「Gecko」の文字列を使用することを決定し、この文字列をユーザーエージェント名に使用しないように通達を出した。しかし、この通達はSafariによって破られた。Mozilla FirefoxやSeaMonkeyではユーザーエージェント名の最後にソフトウェア名を入れることでユーザーエージェント名を識別するようにしている。
上述のとおりSafariを始めとするWebKit系ブラウザはMozillaを偽装している。この行為はMozilla陣営は勿論のことKonquerorを始めとするKHTML陣営からも批判が相次いだが、最終的にはKonquerorもSafariの動きに同調した。
このようなユーザーエージェント偽装が一般に広く普及しているため、ブラウザが偽装するユーザーエージェントであるInternet Explorerの使用シェアが過大に見積もられ、そして他のブラウザの使用シェアが過小評価されているのではないかという見方もある。
Webブラウザ以外でも、大部分のダウンロードマネージャーやオフラインブラウザのように HTTP を利用しているプログラムは、同様にサーバに送られるユーザーエージェント文字列をユーザーの好みに変える機能を持っている。これは恐らく、ある特定のサーバとの互換性を維持するための工夫である。こうしたプログラムは大抵不注意に使われサーバに重い負荷を与えるために、一部のサーバは直ちにそれらのプログラムをサポートすることを拒否したためである。
2005年の時点で、ウェブの歴史上の他のいかなる時よりも多くのウェブサイトがウェブ標準に従うようになっている。
しかしながら、Internet Explorer以外のブラウザやナビゲータを締め出す旧式のJavaScriptが未だに使われている(特に小さい、非企業のウェブサイトにおいて)。これはしばしば、カーゴ・カルトプログラミング(コードが実際にウェブサイトに何の効果を与えるかを理解せずに、以前のコードをコピー・ペーストすること)が原因である[4]。
自己表現としてのユーザーエージェント偽装
一種の自己表現として用いられているケースも散見される。
ユーザーエージェント・スニッフィング
ユーザーエージェント・スニッフィングとは、特定のユーザーエージェントで閲覧すると異なった内容を示すウェブサイトを指す。インターネットでは、特定のブラウザでページを閲覧すると異なる結果が表示されるという結果になるだろう(例えば Microsoft Internet Explorer)。この悪名高い例は、マイクロソフトのOutlook 2003ウェブアクセスである。Internet Explorerで閲覧すると、他のいかなるブラウザと比較してもずっと多くの機能性が示されるのである。ユーザーエージェント・スニッフィングを使うとブラウザに特化したデザインを奨励することになるので、大抵ユーザーエージェント・スニッフィングは好ましくない行為であると見なされる。多くのウェブ担当者が、可能な限り多くのブラウザで正しいレンダリングできるように、可能な限り標準化されたHTMLマークアップを使うことが推奨される。しかし日本国内ではマイクロソフトのプロダクトへの依存度が高いため[5]IEに特化されたサイトがまだまだ多いというのが現状である。
携帯電話向けのウェブサイト(特にNTTドコモのiモードやKDDIのEZweb、SoftBankのYahoo!ケータイのような)では、携帯電話のブラウザがしばしば互いに大きく異なるために、しばしば頻繁にユーザーエージェント・スニッフィングに大いに頼っている(前述のようにユーザーエージェントの偽装が容易に可能であるという理由から、ユーザーエージェントに依存せず接続されたIPアドレスをもとに携帯電話か否かを判断していることも多い)。ここ数年で携帯端末からの閲覧において多くの開発がなされた一方で、これらの新しい技術を持たない多くのより古い電話がまだ頻繁に使われている。従って、携帯端末向けのウェブポータルは、しばしばそれらを閲覧するために使った携帯電話によって完全に異なったマークアップ・コードを生成する。これらの相違は、小さい(例えば小さいスクリーンに合うように特定の画像のサイズを変える)こともあるし、あるいは非常に大規模のこともあり得る(例えばXHTML の代わりにWMLでページを表現する)。
ウェブアプリケーションの中でユーザーエージェント・スニッフィングを行うには数多くの方法がある。これには、パブリックドメインスクリプトや、BrowserHawk のような商業製品を使うことが含まれる。
ユーザーエージェント文字列の例
ブラウザ
Internet Explorer
- Internet Explorer 7 (Windows XP)ならば、
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
- Internet Explorer 8 (Windows XP)ならば、
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; eSobiSubscriber 2.0.4.16; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
- 互換モードの場合は、
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; eSobiSubscriber 2.0.4.16; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
- Internet Explorer 8 (Windows 7)ならば、
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C)
- 互換モードの場合は、
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C)
- Internet Explorer 9 beta (Windows 7)ならば、
- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Mozilla Firefox
- Firefox 2 (Windows XP)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
- Firefox 3 (Windows XP)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
- Firefox3.6 (Windows XP)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
- Firefox3.6 (Windows 7)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
- Firefox 4.0 beta10 (Windows XP)ならば、
- Mozilla/5.0 (Windows NT 5.1; rv:2.0b10) Gecko/20100101 Firefox/4.0b10
- Firefox 4.0 beta11 (Windows 7)ならば、
- Mozilla/5.0 (Windows NT 6.1; rv:2.0b11) Gecko/20100101 Firefox/4.0b11
- Firefox 4.0 (Windows 7)ならば、
- Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0
Opera
- Opera 9.21 (Windows XP)ならば、
- Opera/9.21 (Windows NT 5.1; U; ja)
- Internet Explorerとして認識させるようにした場合は
- Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ja) Opera 9.21
- Opera 10.00 (Windows Vista)ならば、
- Opera/9.80 (Windows NT 6.0; U; ja) Presto/2.2.15 Version/10.00
- Internet Explorerとして認識させるようにした場合は
- Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; ja) Opera 10.00
- Opera 10.53 (Windows XP)ならば、
- Opera/9.80 (Windows NT 5.1; U; ja) Presto/2.5.24 Version/10.53
- Internet Explorerとして認識させるようにした場合は
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; ja) Opera 10.53
- Firefoxとして認識させるようにした場合は
- Mozilla/5.0 (Windows NT 5.1; U; ja; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53
- Opera 11.01 (Windows 7)ならば、
- Opera/9.80 (Windows NT 6.1; U; ja) Presto/2.7.62 Version/11.01
- Internet Explorerとして認識させるようにした場合は
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; ja) Opera 11.01
- Firefoxとして認識させるようにした場合は
- Mozilla/5.0 (Windows NT 6.1; U; ja; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.01
Safari
- Safari 3.1 (Windows XP)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21
- Safari 4.0 (Windows XP)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7
- Safari 5.0 (Windows 7)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 6.1; ja-JP) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
Google Chrome
- Google Chrome 5.0 (Windows XP)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
- Google Chrome 8.0 (Windows 7)ならば、
- Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10
- Google Chrome 12.0 (Windows 7) ならば、
- Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.28 (KHTML, like Gecko) Chrome/12.0.725.0 Safari/534.28
Netscape
- Netscape 7ならば、
- Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.0.1) Gecko/20020823 Netscape/7.0
- Netscape 8ならば、
- Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7.5) Gecko/20051012 Netscape/8.0.4
- Tridentエンジン(IEコンポーネント)を使用した場合は、
- Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Netscape/8.0.4
IEコンポーネントブラウザ
- Lunascape 6ならば
- Tridentエンジン(IEコンポーネント)を使用した場合は、
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; chromeframe/12.0.725.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Lunascape 6.4.5.23569)
- Geckoエンジンを使用した場合は、
- Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.1.18) Gecko/20110325 Firefox/3.5.18 Lunascape/6.4.5.23569
- WebKitエンジンを使用した場合は、
- Mozilla/5.0 (Windows; U; Windows NT 6.1; ja-JP) AppleWebKit/533.3 (KHTML, like Gecko) Lunascape/6.4.5.23569 Safari/533.3
ゲーム機
- Wiiのインターネットチャンネルならば
- Opera/9.10 (Nintendo Wii; U; ; 1621; ja)
ここに示したのはあくまで一例であり、同一のブラウザであっても使用しているOSの種類やバージョンなどにより違うものとなる。また、IEコンポーネントブラウザはInternet Explorerのユーザーエージェント文字列の末尾にそのブラウザ名を追加する場合がある。
2ちゃんねるブラウザ
- 例えば、V2Cならば
- Monazilla/1.00 (V2C/2.5.1)
となり、Monazilla/1.00の後に2ちゃんねるブラウザのソフトウェア名が記載される。
携帯電話
モバイルブラウザ
- DoCoMo/2.0 F903iX(c100;TB;W28H15)
- KDDI-HI35 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0
- ソフトバンクのYahoo!ケータイならば、
- SoftBank/1.0/910SH/SHJ001[/Serial] Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
- ウィルコムのAIR-EDGE PHONEならば、
- Opera搭載端末ならば、
- Mozilla/3.0(WILLCOM;KYOCERA/WX331K/2;1.0.2.13.000000/0.1/C100) Opera 7.2 EX
- NetFront搭載端末ならば、
- Mozilla/3.0(WILLCOM;TOSHIBA/WS023T/2;0001;5/1/C128) NetFront/3.4
- イー・モバイルならば、
- emobile/1.0.0 (H11T; like Gecko; Wireless) NetFront/3.4
フルブラウザ
- NTTドコモのiモードフルブラウザならば、
- Mozilla/4.08 (F903iX;FOMA;C500;TB)
- iモードブラウザ2.0搭載端末ならば、
- Mozilla/5.0 (F07B;FOMA;like Gecko)
- auのPCサイトビューアーならば、
- Mozilla/4.0 (compatible; MSIE 6.0; KDDI-HI35) Opera 7.60 [ja]
- ソフトバンクのPCサイトブラウザならば、
- Mozilla/4.08 (910SH;SoftBank[;Serial]) NetFront/3.3
- ウィルコムならば、
- Opera搭載端末ならば、
- Mozilla/4.0 (compatible; MSIE 6.0; KYOCERA/WX331K/2;1.0.2.13.000000/0.1) Opera 7.2 EX [ja]
- NetFront搭載端末ならば、
- Mozilla/5.0 (MobilePhone; NMCS/3.4; like Gecko/20060901) NetFront/3.4
- イー・モバイルならば、
- Mozilla/5.0 (H11T; like Gecko; OpenBrowser) NetFront/3.4
変換サイト系ブラウザ
- KZ BRAIN Mobileのモバイル端末用変換ブラウザならば、
- Mozilla/5.0 (compatible; KZ BRAIN Mobile; http://servermobile.net) @xxx.xxx.xxx.xxx
- @以降はアクセス元のIPアドレスが表示される。また、ユーザーエージェントを切り替える機能を実装している。
スマートフォン
- Windows Mobileならば、
- Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.1 T-01A_6.5; Windows Phone 6.5)
- NetFrontからアクセスした場合は、
- Mozilla/5.0 (PDA; NF35WMPRO/3.2; like Gecko) NetFront/3.5 T-01A_6.5
- Androidならば、
- Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEriccsonSO-01B Build/R1EA018) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
- iPhoneならば、
- Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; ja-jp) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16
- BlackBerryならば、
- BlackBerry9000/4.6.0.224 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/220
- Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; Motorola M1000;811) Opera 7.50 [ja]./M1000./1.0
- Symbian(S60)ならば、
- Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/20.0.273 Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 Nokia/X02NK
- Palm WebOSならば、
- Mozilla/5.0 (webOS/1.1; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0
インターネットボット
- Accoona — Accoona-AI-Agent/1.1.2 (aicrawler at accoonabot dot com)
- Alexa — ia_archiver
- Ask.com/Teoma — Mozilla/2.0 (compatible; Ask Jeeves/Teoma)
- Baidu Spider — Baiduspider ( http://www.baidu.com/search/spider.htm)
- cURL on Mac OS X for PowerPC (public) — curl/7.13.1 (powerpc-apple-darwin8.0) libcurl/7.13.1 OpenSSL/0.9.7b zlib/1.2.2
- GameSpy HTTP (GameSpy) — GameSpyHTTP/1.0
- Gigabot (Gigablast) — Gigabot/2.0
- Googlebot (Google) — Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- Grub (usage: public) (owner: LookSmart) — Mozilla/4.0 (compatible; grub-client-1.4.3; Crawl your own stuff with http://grub.org) Mozilla/4.0 (compatible; grub-client-2.3)
- Inktomi Slurp (superseded by Yahoo! Slurp) — Mozilla/3.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)
- msnbot (Microsoft's MSN Search) — msnbot/1.0 (+http://search.msn.com/msnbot.htm)
- OmniExplorer_Bot (Feeds Vast.com) — OmniExplorer_Bot/6.70 (+http://www.omni-explorer.com) WorldIndexer
- Scooter (AltaVista) — Scooter-3.2.EX
- W3C Validator — W3C_Validator/1.432.2.10
- W3C CSS Validator — Jigsaw/2.2.5 W3C_CSS_Validator_JFouffa/2.0
- wget (public) — Wget/1.9
- Yahoo! Slurp (Yahoo! Search) — Mozilla/5.0 (compatible; Yahoo!Slurp;http://help.yahoo.com/help/us/ysearch/slurp) —もしくは Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)
- Yahoo!-MMCrawler (Yahoo! Search) — Yahoo!-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
暗号強度「U」/「I」/「N」
Netscape、Mozilla、Opera、その他一部のブラウザでは、ブラウザの暗号強度を示すためにU, I, Nの3個の文字を使用する。米国政府は40ビットを越える暗号をアメリカから国外へ輸出することを認めないので、暗号強度が異なる様々なバージョンがリリースされた。「U」は「USA」を表し、128ビットの暗号化を備えたバージョンであることを示す。「I」は「international(国際的)」のiであり、40ビットの暗号化を備えており、世界中のどこでも使用できることを示す。「N」は「none(無し)」を表し、暗号化を行わない。元は、「U」バージョンはアメリカ国内からのみダウンロードが許可されていたが、その後米国政府が方針を緩めたので、今では高い暗号化をするバージョンがほとんどの国々で許されている。現在では国際版がもはや要求されないので、NetscapeとMozillaは「U」バージョンのみを配布している。
関連項目
脚注
- ^ 電子メールクライアントや電子メールクライアントと呼ばれることもある。詳細は電子メールクライアントの項目を参照のこと。
- ^ ここでいうMozillaはNetscape Navigatorのコードネームである。その後、オープンソースソフトウェアとして公開されたMozillaとは別のものであることには注意。
- ^ ただし機能をInternet Explorerに特化させている場合があるため必ずしも正常に利用できるとは限らず、閲覧は出来ても主な機能はInternet Explorerでしか利用できないと言ったケースも存在する。
- ^ 訳注:カーゴカルトとは、第二次世界大戦中アメリカ兵が南洋の島に航空基地を作り輸送機から多くの荷物を受け取るのを見た原住民が、それを神からの贈り物を受け取っているのだと思い込み、アメリカ兵の訓練や装備、滑走路を形だけ真似て神の恵みを求めて祈ったという逸話を指す。→リチャード・P・ファインマン(en:Cargo cult programming)
- ^ http://internet.watch.impress.co.jp/cda/news/2005/05/13/7593.html