ユーザエージェント(UA)
インターネットをするときに使っているソフトや機械だよ
インターネットでやり取りするときに情報として受け渡されるよ
「UA」と表現された場合は「User Agent」の略だよ
簡単に書くよ
ユーザエージェント(UA)(英:User Agent)とは
ホームページを見るときに送られる情報のひとつ
であり
「どんなソフトや機械を使ってインターネットをやっていますよ~」な情報
です。
本当は
インターネットとかをするときに使うプログラムや機械のこと
らしいですけどね。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として、ホームページが表示される流れを簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。
これが、ホームページが表示されるときの流れです。
以上を踏まえて、本題に入ります。
WebブラウザさんがWebサーバさんに「このページをおくれ」と お願いを出したところに注目してください。
実は、このお願いには、いろいろな情報がくっつけられて送られます。
例えば「前に見ていたページは、これです」「使っているWebブラウザは、これです」「どこに対して、お願いを出しています」などです。
これらの「お願いと一緒に渡される情報」のひとつで
「こんなソフトや機械を使ってインターネットをやっています」な情報
が「ユーザエージェント」です。
「User Agent(ユーザ・エージェント)」の頭文字を取って「UA」と表現されることも あります。
※「User Agent」を何となく日本語にすると「使用者の代理人」となります。[詳細]
実際のユーザエージェントは例えば以下のような内容です。
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0"
「Firefox/85.0」と書いてありますね。
これは「Firefoxを使ってインターネットをやっています」という意味です。
あるいは、以下のようなユーザエージェントもあります。
"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1"
「iPhone」と書いてありますね。
これは「iPhoneを使ってインターネットをやっています」という意味です。
厳密には「使っているソフトとか機械の情報」("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0")ではなく「使っているソフトとか機械」(Firefox)がユーザエージェントらしいですけどね。
そこら辺は、ゆるく捉えてください。
単語の意味から考えてもイメージしやすいかもしれませんね。
ユーザは「使う人」です。
エージェントの意味は「代理人」です。
人間様の代理人として(ホームページのファイルをもらってくるのを)頑張ってくれているやつがユーザエージェントです。
あと、ユーザエージェントの情報は簡単に偽装できます。
ウソをつくのが簡単なのです。
よって、情報としての信頼度は高くありません。
過信しないように気を付けてください。
気休めとか参考情報程度にしか使えない情報です。
以上がユーザエージェントのざっくりとした説明です。
次に、もう少しだけ細い部分を説明します。
余裕がある方は頑張って読んであげてください。
脳みそから煙が出そうな人は無理する必要ありません。
ゆっくり休んでください。
あっ、読んでくださるのですね。
ありがとうございます。
それでは、いってみましょう。
まずは予備知識として
・ホームページが表示される流れ
・HTTP
・HTTPリクエスト
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
上でも説明しましたが、あなたがホームページを見ようとすると、まず、WebブラウザからWebサーバに対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。
これが、ホームページが表示されるときの流れです。
この流れにおいて、WebブラウザさんとWebサーバさんは、やり取りをしました。
このやり取りで使われる お約束事を「HTTP」と言います。
HTTPは「ホームページのファイルとかを受け渡しするときに使う お約束事」です。
WebブラウザさんからWebサーバさんに出される「このページをおくれ」な お願いは「HTTPリクエスト」と言います。
以上を踏まえて、本題に入ります。
HTTPリクエストは3つの部品から成り立っています。
1.HTTPリクエストライン(リクエストライン)
2.HTTPリクエストヘッダ(ヘッダ)
3.HTTPリクエストメッセージボディ(メッセージボディ)
の3つです。
構造としては
「リクエストライン」
「ヘッダ」
(空行【CR+LF】)
「メッセージボディ」
のようになっています。
この3つのうち「HTTPリクエストヘッダ(ヘッダ)」の中に「User-Agent」という項目があります。
この「User-Agent」の項目に書いてある情報がユーザエージェントです。
……と言葉で説明されても分かりにくいと思いますので、実際のHTTPリクエストを見てみましょう。
実際のHTTPリクエストは、例えば以下のような内容になっています。
POST /search.html HTTP/1.1\r\n
Host: wa3.i-3-i.info\r\n
Connection: keep-alive\r\n
Content-Length: 38\r\n
Cache-Control: max-age=0\r\n
Origin: http://wa3.i-3-i.info\r\n
Upgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n
Referer: http://wa3.i-3-i.info/index.html\r\n
Accept-Encoding: gzip, deflate\r\n
Accept-Language: ja,en-US;q=0.8,en;q=0.6\r\n
\r\n
q=test&submitSearch=%E6%A4%9C%E7%B4%A2
ごちゃごちゃしていて分かりにくいですが、1行目の
POST /search.html HTTP/1.1\r\n
の部分がリクエストラインです。
Host: wa3.i-3-i.info\r\n
Connection: keep-alive\r\n
Content-Length: 38\r\n
Cache-Control: max-age=0\r\n
Origin: http://wa3.i-3-i.info\r\n
Upgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n
Referer: http://wa3.i-3-i.info/index.html\r\n
Accept-Encoding: gzip, deflate\r\n
Accept-Language: ja,en-US;q=0.8,en;q=0.6\r\n
の部分がヘッダです。
q=test&submitSearch=%E6%A4%9C%E7%B4%A2
の部分がメッセージボディになります。
ヘッダの中に
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1\r\n
と書いてありますよね。
この情報がユーザエージェントです。
どんなソフトでホームページを見ているかとかが書いてあります。
一言でまとめるよ
まぁ「ユーザエージェント」って単語が出てきたら「『どんなソフトや機械を使ってインターネットをやっていますよ』な情報なんだな~」と お考えください。
おまけ
■訳してみるよ
「user(ユーザ)」の意味は「使用者」とか「利用者」とかです。
「agent(エージェント)」の意味は「代理」とか「代理人」とかです。
何となく くっつけると
利用者の代理人
となります。






