HTTP
HTTPとは
HTTP(Hyper Text Transfer Protocol)とは、Webブラウザ(ユーザ、クライアント)とWebサーバの間で情報をやりとりするために使われる通信規則(プロトコル)の一つ。
「http://」で始まるURLへアクセスした際に情報の送受信に使われる。
HTTPメッセージの構成
WebブラウザからWebサーバへ送られるメッセージを「HTTPリクエストメッセージ」、
WebサーバからWebブラウザへ送られるメッセージを「HTTPレスポンスメッセージ」と呼ぶ。
HTTPリクエストメッセージの構成
HTTPリクエストメッセージは「リクエストライン」「HTTPヘッダ」「メッセージボディ」から構成される。
HTTPヘッダとメッセージボディの間には空行1行が必要。
HTTPリクエストメソッド | 処理命令の種類。 主なメソッドは、GET(リソースを要求)・POST(リソースを送信)・PUT(リソースを更新)・DELETE(リソースを削除) |
---|---|
パス | アクセスするページの場所。 |
プロトコルバージョン | 利用するHTTP自身のバージョン。 |
HTTPヘッダ | 通信制御やデータ出力制御などに利用する情報。 各行は「フィールド」と呼ばれ、「フィールド名」と「フィールド値」をコロン「:」で繋いだ構成となっている。 具体的な設定値はHTTPヘッダフィールド一覧を参照。 |
メッセージボディ | リクエストの追加情報。 メッセージボディが存在しないHTTPリクエストメッセージもある。 |
HTTPレスポンスメッセージの構成
HTTPレスポンスメッセージは「ステータスライン」「HTTPヘッダ」「メッセージボディ」から構成される。
HTTPヘッダとメッセージボディの間には空行1行が必要。
プロトコルバージョン | 利用するHTTP自身のバージョン。 |
---|---|
ステータスコード | Webサーバがリクエストを処理した結果を示す。 ステータスコード一覧(MDN web docs) |
ステータスメッセージ | Webサーバがリクエストを処理した結果を示す。 |
HTTPヘッダ | 通信制御やデータ出力制御などに利用する情報。 各行は「フィールド」と呼ばれ、「フィールド名」と「フィールド値」をコロン「:」で繋いだ構成となっている。 具体的な設定値はHTTPヘッダフィールド一覧を参照。 |
メッセージボディ | Webブラウザで表示する情報などのメインのリソース(コンテンツ)。 |
HTTPの通信フロー
HTTPの一連の通信の流れを以下に示す。
- TCPコネクションの確立(3Wayハンドシェイク) HTTP通信の前準備として、TCPプロトコルで通信経路を確立する。
- HTTPリクエストメッセージの送信 クライアントはWebページのデータを要求する。
- HTTPレスポンスメッセージの送信 サーバは要求されたWebページのデータを送信する。
- TCPコネクションの切断