HTTPリクエストヘッダ
HTTPリクエストを構成する部品だよ
3つの部品のうち真ん中の部品だよ
「お願いごとやお願い元に関するあれこれ」が書かれているよ
簡単に書くよ
HTTPリクエストヘッダ(読:エィチティーティーピーリクエストヘッダ 英:HTTP request header)とは
HTTPリクエスト
(ホームページの話で出てくる「このページをちょうだい」な、お願い)を構成する部品のひとつ
であり
ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に伝えたい「お願いごとやお願い元に関するあれこれ」が書かれている場所
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・ホームページが表示される流れ
・HTTP
・リクエスト
・HTTPリクエスト
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。
これが、ホームページが表示されるときの流れです。
この流れにおいて、WebブラウザさんとWebサーバさんは、やり取りをしました。
このやり取りで使われる お約束事を「HTTP」と言います。
HTTPは「ホームページのファイルとかを受け渡しするときに使う お約束事」です。
リクエストは「これをやってよー!」なお願いです。
カッコ付けて「要求」などと表現されることも あります。
HTTPリクエストはWebブラウザさんからWebサーバさんに出される「このページをおくれ」な お願いです。
WebブラウザさんからWebサーバさんに出される「このページをおくれ」な お願いはリクエストです。
ただし、単に「リクエスト」と表現すると、何のリクエストなのかが、はっきりしません。
「通信したいです」も「今日の晩御飯はトンカツが食べたいな~」も「あの曲を流してくださ~い」もリクエストと呼べますからね。
そこで頭に「HTTP」を付けて「HTTPリクエスト」と表現するのです。
そうすれば
HTTPのリクエストなのね
↓
HTTPってことはホームページ関連ですか
↓
ホームページの話で出てくるリクエストのことね
と分かります。
以上を踏まえて、本題に入ります。
HTTPリクエストは3つの部品から成り立っています。
答えを先に書いてしまいますが
1.HTTPリクエストライン(リクエストライン)
2.HTTPリクエストヘッダ(ヘッダ)
3.HTTPリクエストメッセージボディ(メッセージボディ)
の3つです。
構造としては
「リクエストライン」
「ヘッダ」
(空行【CR+LF】)
「メッセージボディ」
のようになっています。
「HTTPリクエストヘッダ」とバッチリ書いてありましたね。
はい、そうです。
HTTPリクエストを構成する3つの部品のひとつ
が「HTTPリクエストヘッダ」です。
長ったらしいので「リクエストヘッダ」や「ヘッダ」と表現されることも あります。
HTTPリクエストヘッダに入るのは、WebブラウザさんからWebサーバさんに伝えたい情報です。
主に、お願いごとやお願い元に関する あれやこれやの情報が書きこまれます。
実際の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: うんちゃら\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
ごちゃごちゃしていて分かりにくいですが、2行目から空行(\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: うんちゃら\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
がHTTPリクエストヘッダです。
HTTPリクエストヘッダの書式は
【フィールド名】:【内容】
です。
この書式で必要な数だけ縦にズラズラっと並びます。
【フィールド名】に書かれるのは「User-Agent」などですね。
【内容】には、それらの項目に対する実際の値が入ります。
一言でまとめるよ
まぁ「HTTPリクエストヘッダ」って単語が出てきたら「HTTPリクエスト
(ホームページの話で出てくる「このページをちょうだい」な、お願い)の部品で『お願いごとやお願い元に関するあれこれ』が書かれている場所なんだな~」と お考えください。
おまけ
■訳してみるよ
「HTTP」は「HyperText Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル)」の略です。
「HyperText(ハイパーテキスト)」はIT用語の「ハイパーテキスト」です。
ちょっと意訳ですが「ホームページのファイル」だと思ってください。
「transfer(トランスファー)」の意味は「移す」とか「動かす」とか「運ぶ」とかです。
「protocol(プロトコル)」の意味は「(外交上の)儀礼」とか「議定書」とかですが、今回は「お約束事」と解釈してください。
「request(リクエスト)」の意味は「要求」とか「要望」とか「依頼」とか「請求」とかです。
「header(ヘッダ)」はIT用語の「ヘッダ」です。
「頭」とかを意味する「head(ヘッド)」という単語に「~する人」とか「~するもの」的な意味になる接尾辞「er」を付けた単語です……多分。
何となく くっつけると
ホームページのファイルを運ぶお約束事の要求のヘッダ
となります。
■検索してみる?






