ユーザーエージェント

ユーザーエージェント(User agent)とは、ブラウザやOSなどのソフトウェア、モバイルやデスクトップといったハードウェアに関わる情報のこと。

ユーザーエージェントは、ブラウザやOS、そしてこれらのバージョンやその他の付随する情報のことを指す場合が多い。大抵は他の何かと区別する識別子として用いられる。

例えば、モバイルとデスクトップパソコンを振り分ける場合のユーザーエージェントが代表例。これは、携帯とデスクトップに対して別々にウェブサイトを構築しているケースで使われる。かつてはユーザビリティの観点からよく利用されたサイト構築における一つの方法であったが、レスポンシブウェブデザインの登場によって減少している。

モバイルに関しては、Android(アンドロイド)とiphoneが大半を占めているため、ユーザーエージェントでデスクトップと振り分けるのは容易になっている。しかし、これらのOSや端末は時間の経過とともに大きく様相を変化させることがある。

ユーザーエージェントの識別には、「htaccess」を用いられるのが一般的だ。ウェブサーバ(web server)がアパッチであるケースが多いため。こういったサーバでは、ブラウザ側が知らせてくるユーザーエージェントごとに別々のページへ飛ばすことができる。「htaccess」では、IPを利用して一定範囲のIPアドレスをまとめて、他のIPと区別することができる。

また、PHPなど、直接HTMLに書き込めるプログラムでは、関数による条件分岐を駆使して、ユーザーエージェントを区別することが可能。この場合、HTMLの一部分だけの変更も容易である。

いずれの場合も定期的に対象端末やOSの見直し設定・確認が必要。一覧を作ってみるのも良いだろう。これは、携帯がスマホに切り替わったり、Androidやiphoneが登場したりと、以前には存在しなかったものが、ある時点から爆発的に増加することもあるからだ。

とはいえ、ユーザーエージェントはあくまでアクセスしてくる端末の自由な申告であり、その申告がなければサーバに接続できないといった制約は基本的にはない。また、server側から各端末のユーザーエージェントを正確に得られるという性質のものではなく、そういった技術に関するものではない。

従って、ユーザーエージェントは偽装することも可能である。そのため、ユーザーエージェントによる識別は、100%確実である、というものではない。

尚、ユーザーエージェントによる振り分けは、クローキングになってしまう事もある。

ユーザーエージェントの意味を簡潔に説明すると

端末がサーバに知らせてくる情報のこと。