【りくえすと・れすぽんす】

リクエスト・レスポンス とは?

最終更新:
💡 要求を送り、その結果を応答で受け取る

要求を送る側が処理やデータを求め、受け取る側が応答を返す通信パターン。HTTPではクライアントがリクエストを送り、サーバーが状態コードや必要に応じたデータをレスポンスとして返す。

📌 このページのポイント
要求を送り、応答を受け取る ブラウザー クライアント サーバー 要求 GET /users 応答 要求の例 GET /users HTTP/1.1 Host: example.com ボディなし 応答の例 HTTP/1.1 200 OK Content-Type等 ボディ: JSONデータ 非同期に応答を扱う実装もある
HTTP/1.1による要求と最終応答の例。ボディの有無はメッセージによる。
ひよこ ひよこ
ブラウザーでページを見るとき、何が起きる?
ペンギン先生 ペンギン先生
ブラウザーがページを要求し、サーバーがHTMLなどを応答として返すよ。HTMLから参照される画像やCSSにも、追加の要求が必要になることがある。ページ表示と要求の数は、一対一ではないんだ。
ひよこ ひよこ
リクエストには何が入る?
ペンギン先生 ペンギン先生
HTTPでは操作を表すGETやPOST、対象の場所、ヘッダーなどがあるよ。HTTP/1.1の例ならGET /users HTTP/1.1という行で操作と対象を表す。送信データのボディがあるかは、要求の内容によるんだ。
ひよこ ひよこ
レスポンスは、いつもデータが入っている?
ペンギン先生 ペンギン先生
状態コードやヘッダーで結果を示し、必要に応じてHTMLやJSONなどのボディを返すよ。ボディを持たない応答もある。200は成功、404は対象を見つけられないことなどを表すんだ。
ひよこ ひよこ
1回の要求に、必ず1回だけ応答が来る?
ペンギン先生 ペンギン先生
HTTPでは最終応答の前に、1xxの途中経過を示す応答が来ることもあるよ。また、通信障害などで応答を受け取れないこともある。単純な図は要求と最終応答の基本の流れを表しているんだ。
ひよこ ひよこ
応答が来るまで、画面も止まる?
ペンギン先生 ペンギン先生
要求と応答の方式だからといって、プログラムが同期的に止まるとは限らないよ。JavaScriptのfetchはPromiseを返し、非同期に応答を扱える。画面がいつ更新されるかはアプリケーションの作りによるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「リクエスト・レスポンス」って出てきたら「要求を送り、その結果を応答で受け取る通信パターン」と思えばだいたいOK!
📖 おまけ:英語の意味
「Request / Response」 = 要求 / 応答
💬 Requestは要求、Responseは応答という意味だよ。HTTPでは、クライアントからの要求とサーバーからの応答として使われるんだ。

参考資料

← 用語集にもどる