TCP/IP 通信
TCP/IPにおいて、クライアント側からのリクエスト通信は、物理層まで到達し、送信先のサーバーや、PCに送られる。
ケーブルを通ったデータは、今度は逆の順番で、データが読み解かれていく。
ネットワークインターフェース層→ネットワーク層→トランスポート層→アプリケーション層、という順で処理され、リクエスト通信が届く。
届いた後は、送られてきたデータをもとに処理されて、要求された操作を実行する。
送信元へレスポンスを返す場合、送られてきた時と同様に、通信が行われる。
HTTPレスポンス
HTTPレスポンスはリクエストに似た構造を持つ。
ステータス、ヘッダーフィールド、空行、メッセージ本体からなる。
ステータス行には、リクエストに基づいてサーバーが行なった処理について、結果が示される。
スペースを区切りとして、三つの部分に分かれている。
HTTPバージョン:HTTPの、どのバージョンによるものか表す。
ステータスコード:200番台なら、通信処理成功。400番台なら、クライアント側のエラー。500番台なら、サーバー側のエラーとなる。
理由フレーズ:人が読んでわかるメッセージで表したもの。
ヘッダーフィールドは、フィールド名と値で表される。
リクエストにもヘッダーフィールドはあるが、使われるフィールド名は、両方で使われるものも、どちらかでしか使われないものもある。
レスポンスで使われるフィールド名は、Allow,ETag,Server,Varyなどがある。
メッセージ本体では、テキストではないデータは一派にバイナリデータと呼ばれる2進数の値で情報が書かれている。
HTTPの基本的な動作では、リクエストのたびに接続を確立し、1つのレスポンスを返したら接続を切るということを繰り返している。
参考
https://www.atmarkit.co.jp/ait/articles/1511/27/news013.html