HTTP
cover
おすすめ
HTTPとはHTTPの通信フローHTTPリクエストメッセージの構成リクエストラインHTTPリクエストメソッドパスプロトコルバージョンHTTPヘッダメッセージボディHTTPレスポンスメッセージステータスラインHTTPヘッダメッセージボディHTTPヘッダHTTPヘッダの構成HTTPヘッダのフィールド一覧参考
HTTPとは
HTTP(Hyper Text Transfer Protocol)とは、Webブラウザ(ユーザ、クライアント)とWebサーバの間で情報をやりとりするために使われる通信規則(プロトコル)の一つ。
HTTPの通信フロー
HTTPの一連の通信の流れを以下に示す。
- TCPコネクションの確立(3Wayハンドシェイク) HTTP通信の前準備として、TCPプロトコルで通信経路を確立する。
- HTTPリクエストメッセージの送信 クライアントはWebページのデータを要求する。
- HTTPレスポンスメッセージの送信 サーバは要求されたWebページのデータを送信する。
- TCPコネクションの切断
HTTPリクエストメッセージの構成
クライアント(ユーザ)からWebサーバへ送る通信は「HTTPリクエストメッセージ」と呼ばれる。
HTTPリクエストメッセージは「リクエストライン」「HTTPヘッダ」「メッセージボディ」から構成される。
リクエストライン
リクエストラインはさらに「HTTPリクエストメソッド」「パス」「プロトコルバージョン」に分けられる。
HTTPリクエストメソッド
処理命令の種類。主なリクエストメソッドは下記の通り。
GET | リソースの要求 |
---|---|
POST | リソースの送信 |
PUT | リソースの更新(置き換え) |
DELETE | リソースの削除 |
パス
アクセスするページの場所。
プロトコルバージョン
利用するHTTP自身のバージョン。
HTTPヘッダ
通信制御やデータ出力制御などに利用する情報。
メッセージボディ
リクエストの追加情報。
メッセージボディが存在しないHTTPリクエストメッセージもある。
HTTPレスポンスメッセージ
Webサーバからクライアント(ユーザ)へ送る通信メッセージ。
ステータスライン
HTTPヘッダ
通信制御やデータ出力制御などに利用する情報。
メッセージボディ
Webページのデータ。
HTTPヘッダ
HTTPヘッダの構成
「フィールド名」と「フィールド値」をセミコロンで繋いだ1行を「フィールド」と呼ぶ。
HTTPヘッダは「フィールド」の集まりで構成される。
Plain Text
HTTPヘッダのフィールド一覧
フィールドは以下の4種類に大きく分類される。
Requestヘッダ (リクエストヘッダ) | HTTPリクエストにて利用されるヘッダ。 |
---|---|
Responseヘッダ (レスポンスヘッダ) | HTTPレスポンスにて利用されるヘッダ。 |
Generalヘッダ (一般ヘッダ) | HTTPリクエストとHTTPレスポンスのどちらにも利用可能なヘッダ。 |
Representationヘッダ (表現ヘッダ) | リソース本体に関しての情報を持つヘッダ。 |
Payloadヘッダ (ペイロードヘッダ) | 転送データ以外に関する情報を持つヘッダ。 |
2022年頃まで「Entityヘッダ」というヘッダ種別が存在していたが、現在のHTTP/1.1 仕様書では参照されず、一部のフィールドは「表現ヘッダ」として参照されるようになった。
Entityヘッダはエンティティ(メッセージボディ部分の情報)の付加情報として使われるヘッダとして定義されていた。