HTTPレスポンス
「このページをちょうだい」なお願いに対する返事だよ
ホームページの話で出てくるよ
簡単に書くよ
HTTPレスポンス(読:エィチティーティーピーレスポンス 英:HTTP response)とは
HTTPリクエスト
(ホームページの話で出てくる「このページをちょうだい」な、お願い)に対するレスポンス。
もう少し噛み砕いて書くと
ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して出される「このページをちょうだい」なお願いに対するWebサーバさんからの返事
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・ホームページが表示される流れ
・HTTP
・リクエスト
・HTTPリクエスト
・レスポンス
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。
これが、ホームページが表示されるときの流れです。
この流れにおいて、WebブラウザさんとWebサーバさんは、やり取りをしました。
このやり取りで使われる お約束事を「HTTP」と言います。
HTTPは「ホームページのファイルとかを受け渡しするときに使う お約束事」です。
リクエストは「これをやってよー!」なお願いです。
カッコ付けて「要求」などと表現されることも あります。
HTTPリクエストはWebブラウザさんからWebサーバさんに出される「このページをおくれ」な お願いです。
WebブラウザさんからWebサーバさんに出される「このページをおくれ」な お願いはリクエストです。
ただし、単に「リクエスト」と表現すると、何のリクエストなのかが、はっきりしません。
「通信したいです」も「今日の晩御飯はトンカツが食べたいな~」も「あの曲を流してくださ~い」もリクエストと呼べますからね。
そこで頭に「HTTP」を付けて「HTTPリクエスト」と表現するのです。
そうすれば
HTTPのリクエストなのね
↓
HTTPってことはホームページ関連ですか
↓
ホームページの話で出てくるリクエストのことね
と分かります。
レスポンスはリクエストに対する反応(返事)です。
カッコ付けて「応答」などと表現されることも あります。
以上を踏まえて
Webサーバさんから返ってくる「ほれ、そのページだよ」なお返事
が「HTTPレスポンス」です。
HTTPレスポンスはHTTPリクエストに対する反応(返事)です。
HTTPリクエスト:「このページをおくれ」な お願い
HTTPレスポンス:「ほれ、そのページだよ」なお返事
となります。
HTTPレスポンスは3つの部品から成り立っています。
1.HTTPステータスライン(ステータスライン)
2.HTTPレスポンスヘッダ(ヘッダ)
3.HTTPレスポンスボディ(レスポンスボディ)
の3つです。
構造としては
「ステータスライン」
「ヘッダ」
(空行【CR+LF】)
「レスポンスボディ」
のようになっています。
実際のHTTPレスポンスは、例えば以下のような内容になっています。
HTTP/1.1 200 OK\r\n
Server: nginx\r\n
Date: Tue, 11 Jul 2017 09:23:07 GMT\r\n
Content-Type: text/html\r\n
Transfer-Encoding: chunked\r\n
Connection: keep-alive\r\n
\r\n
<!DOCTYPE html>\r\n
<html lang="ja">\r\n
<head>\r\n
\t<meta http-equiv="content-type" content="text/html; charset=UTF-8" />\r\n
\t<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">\r\n
\r\n
\r\n
\t<meta name="keywords" content="\350\276\236\345\205\270,IT,\347\224\250\350\252\236,\345\210\235\345\277\203\350\200\205">\r\n
\t<meta name="author" content="Makoto Sasaki">\r\n
\t<meta name="copyright" content="Copyright PCS">\r\n
\r\n
\t<link rel="stylesheet" href="css/style.css?ver=00109">\r\n
\t<link rel="stylesheet" href="css/search.css?ver=00109">\r\n
\t<script src="./js/jquery-1.7.2.min.js?ver=00109"></script>\r\n
\t<script src="./js/common.js?ver=00109"></script>\r\n
</head>\r\n
<body>\r\n
(中略)
</body>\r\n
</html>\r\n
\r\n
ごちゃごちゃしていて分かりにくいですが、1行目の
HTTP/1.1 200 OK\r\n
がHTTPステータスラインです。
HTTPステータスラインには「HTTPリクエストの結果」が、ざっくりと書かれています。
この例では
「HTTP/1.1」で「200 OK」が返ってきたよ!
と書いてあります。
2行目以降の
Server: nginx\r\n
Date: Tue, 11 Jul 2017 09:23:07 GMT\r\n
Content-Type: text/html\r\n
Transfer-Encoding: chunked\r\n
Connection: keep-alive\r\n
がHTTPレスポンスヘッダです。
HTTPレスポンスヘッダには「HTTPステータスラインに書ききれないレスポンスの情報」が、ごちゃごちゃと書かれています。
空行を意味する
\r\n
を挟んで、最後の
<!DOCTYPE html>\r\n
<html lang="ja">\r\n
<head>\r\n
\t<meta http-equiv="content-type" content="text/html; charset=UTF-8" />\r\n
\t<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">\r\n
\r\n
\r\n
\t<meta name="keywords" content="\350\276\236\345\205\270,IT,\347\224\250\350\252\236,\345\210\235\345\277\203\350\200\205">\r\n
\t<meta name="author" content="Makoto Sasaki">\r\n
\t<meta name="copyright" content="Copyright PCS">\r\n
\r\n
\t<link rel="stylesheet" href="css/style.css?ver=00109">\r\n
\t<link rel="stylesheet" href="css/search.css?ver=00109">\r\n
\t<script src="./js/jquery-1.7.2.min.js?ver=00109"></script>\r\n
\t<script src="./js/common.js?ver=00109"></script>\r\n
</head>\r\n
<body>\r\n
(中略)
</body>\r\n
</html>\r\n
\r\n
がHTTPレスポンスボディです。
HTTPレスポンスボディには「ほれ、そのページだよ」の「そのページ」が入っています。
ホームページの中身ですね。
これがHTTPレスポンスの構造です。
繰り返しになりますが
「ステータスライン」
「ヘッダ」
(空行【CR+LF】)
「レスポンスボディ」
のようになっています。
一言でまとめるよ
まぁ「HTTPレスポンス」って単語が出てきたら「ホームページの話で出てくる『このページをちょうだい』なお願いに対するお返事なんだな~」と お考えください。
おまけ
■訳してみるよ
「HTTP」は「HyperText Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル)」の略です。
「HyperText(ハイパーテキスト)」はIT用語の「ハイパーテキスト」です。
ちょっと意訳ですが「ホームページのファイル」だと思ってください。
「transfer(トランスファー)」の意味は「移す」とか「動かす」とか「運ぶ」とかです。
「protocol(プロトコル)」の意味は「(外交上の)儀礼」とか「議定書」とかですが、今回は「お約束事」と解釈してください。
「response(レスポンス)」の意味は「返答」とか「応答」とか「反応」とか「反響」とかです。
何となく くっつけると
ホームページのファイルを運ぶお約束事の応答
となります。
■検索してみる?






