「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

UA(ユーザエージェント)

pointこの用語のポイント

pointインターネットをするときに使っているソフトや機械だよ

pointインターネットでやり取りするときに情報として受け渡されるよ

point「UA」と表現された場合は「User Agent」の略だよ

スポンサーリンク

簡単に書くよ

UA(ユーザエージェント)(英:User Agent)とは

ホームページを見るときに送られる情報のひとつ
であり

「どんなソフトや機械を使ってインターネットをやっていますよ~」な情報
です。
本当は

インターネットとかをするときに使うプログラムや機械のこと
らしいですけどね。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として、ホームページが表示される流れを簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフトWebブラウザからホームページのファイルが置いてあるコンピュータWebサーバに対して「このページをおくれ」と お願いが出されます。

ユーザエージェント

そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。

ユーザエージェント2

お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。

ユーザエージェント3

これが、ホームページが表示されるときの流れです。

以上を踏まえて、本題に入ります。

WebブラウザさんがWebサーバさんに「このページをおくれ」と お願いを出したところに注目してください。

ユーザエージェント4

実は、このお願いには、いろいろな情報がくっつけられて送られます。
例えば「前に見ていたページは、これです」「使っているWebブラウザは、これです」「どこに対して、お願いを出しています」などです。

ユーザエージェント5

これらの「お願いと一緒に渡される情報」のひとつで

「こんなソフトや機械を使ってインターネットをやっています」な情報

が「ユーザエージェント」です。

ユーザエージェント6

User Agent(ユーザ・エージェント)」の頭文字を取って「UA」と表現されることも あります。

ユーザエージェント7

※「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サーバに対して「このページをおくれ」と お願いが出されます。

ユーザエージェント8

そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。

ユーザエージェント9

お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。

ユーザエージェント10

これが、ホームページが表示されるときの流れです。

この流れにおいて、WebブラウザさんとWebサーバさんは、やり取りをしました。
このやり取りで使われる お約束事を「HTTP」と言います。
HTTPは「ホームページのファイルとかを受け渡しするときに使う お約束事」です。

ユーザエージェント11

WebブラウザさんからWebサーバさんに出される「このページをおくれ」な お願いは「HTTPリクエスト」と言います。

ユーザエージェント12

以上を踏まえて、本題に入ります。

HTTPリクエストは3つの部品から成り立っています。

1.HTTPリクエストライン(リクエストライン)
2.HTTPリクエストヘッダ(ヘッダ)
3.HTTPリクエストメッセージボディ(メッセージボディ)


の3つです。
構造としては

「リクエストライン」
「ヘッダ」
空行CRLF】)
「メッセージボディ」


のようになっています。

ユーザエージェント13

この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

と書いてありますよね。

この情報がユーザエージェントです。
どんなソフトでホームページを見ているかとかが書いてあります。


image piyo2

一言でまとめるよ

まぁ「ユーザエージェント」って単語が出てきたら「『どんなソフトや機械を使ってインターネットをやっていますよ』な情報なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像066
書籍画像006

おまけ

■訳してみるよ

「user(ユーザ)」の意味は「使用者」とか「利用者」とかです。
「agent(エージェント)」の意味は「代理」とか「代理人」とかです。
何となく くっつけると

利用者の代理人

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
インフルエンサー六法 活動開始から情報発信、収益化までに潜むトラブル対策50
つくって、壊して、直して学ぶ Git&GitHub 入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】