「ユーザーエージェント」の版間の差分

編集の要約なし
'''ユーザーエージェント''' (User agent、略称'''UA'''(ユー エー))とは、利用者がある[[プロトコル]]に基づいてデータを利用する際に用いる[[ソフトウェア]]または[[ハードウェア]]を指す。「'''利用者エージェント'''」とも言う。
 
[[Hypertext Transfer Protocol|HTTP]]を用いて[[World Wide Web]]にアクセスするための「[[ウェブブラウザ]]」が代表的なユーザーエージェントの1つであるが、「ユーザーエージェント」という名称はそれに限られるわけではない。例えば、人間が電子メールを送受信する際に用いるユーザーエージェントは、[[電子メールクライアント|メールユーザーエージェント]]である<ref>電子メールクライアントや電子メールクライアントと呼ばれることもある。詳細は[[電子メールクライアント]]の項目を参照のこと。</ref>。
 
1つのプロトコルに対応しているユーザーエージェントの中でも、その性質により更に細分化されて名称を使い分けることがある。HTTPユーザーエージェントとして一般的に用いられているものとして前述したウェブブラウザがあるが、その他にも[[検索エンジン]]の[[クローラ]]などが存在する。
で始まるユーザーエージェント文字列を使っていたことである<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>。
 
また、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 を利用しているプログラムは、同様にサーバに送られるユーザーエージェント文字列をユーザーの好みに変える機能を持っている。これは恐らく、ある特定のサーバとの互換性を維持するための工夫である。こうしたプログラムはたいてい大抵不注意に使われサーバに重い負荷を与えるために、一部のサーバは直ちにそれらのプログラムをサポートすることを拒否したためである。
 
<!-- これってどういうキャンペーン?実態が不明なのでコメントアウト。議論はノートで。
 
 
Webブラウザの範疇では、この悪循環は終わらないだろうと予想される。そこで一部の標準をベースとするウェブ開発者は、いずれか特定のブラウザを想定するのではなく、公式の標準に従ってウェブページを設計するように奨励する「どんなブラウザでも閲覧可能」キャンペーンを始めた。
一種の自己表現として用いられているケースも散見される。
<!-- 推奨できないという根拠が薄弱
 
プロトコル上は送られるべきでないバイト列を送っていることも多く、推奨はできない<ref>とはいえ、大抵の場合はWebブラウザのユーザーエージェントの偽装機能を用いてるため、プロトコル上送られるべきではないバイト列を送出してしまうWebブラウザの問題といえる。</ref>。
-->
 
=== ユーザーエージェント・スニッフィング ===
ユーザーエージェント・スニッフィングとは、特定のユーザーエージェントで閲覧すると異なった内容を示すウェブサイトを指す。インターネットでは、特定のブラウザでページを閲覧すると異なる結果が表示されるという結果になるだろう(例えば 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]]でページを表現する)。
 
== 暗号強度「U」/「I」/「N」 ==
Netscape、Mozilla、Opera、その他一部のブラウザでは、ブラウザの暗号強度を示すためにU, I, Nの3個の文字を使用する。米国政府は40ビットを越える暗号をアメリカから国外へ輸出することを認めないので、暗号強度が異なるさまざま様々なバージョンがリリースされた。「U」は「USA」を表し、128ビットの暗号化を備えたバージョンであることを示す。「I」は「international(国際的)」のiであり、40ビットの暗号化を備えており、世界中のどこでも使用できることを示す。「N」は「none(無し)」を表し、暗号化を行わない。もとは、「U」バージョンはアメリカ国内からのみダウンロードが許可されていたが、その後米国政府が方針を緩めたので、今では高い暗号化をするバージョンがほとんどの国々で許されている。現在では国際版がもはや要求されないので、NetscapeとMozillaは「U」バージョンのみを配布している。
 
== 関連項目 ==
匿名利用者