HTTP

cover
おすすめ
 

HTTPとは

HTTP(Hyper Text Transfer Protocol)とは、Webブラウザ(ユーザ、クライアント)とWebサーバの間で情報をやりとりするために使われる通信規則(プロトコル)の一つ。

HTTPの通信フロー

HTTPの一連の通信の流れを以下に示す。
 
  1. TCPコネクションの確立(3Wayハンドシェイク) HTTP通信の前準備として、TCPプロトコルで通信経路を確立する。
  1. HTTPリクエストメッセージの送信 クライアントはWebページのデータを要求する。
  1. HTTPレスポンスメッセージの送信 サーバは要求されたWebページのデータを送信する。
  1. TCPコネクションの切断
 

HTTPリクエストメッセージの構成

クライアント(ユーザ)からWebサーバへ送る通信は「HTTPリクエストメッセージ」と呼ばれる。
HTTPリクエストメッセージ「リクエストライン」「HTTPヘッダ」「メッセージボディ」から構成される。

リクエストライン

リクエストラインはさらに「HTTPリクエストメソッド」「パス」「プロトコルバージョン」に分けられる。

HTTPリクエストメソッド

処理命令の種類。主なリクエストメソッドは下記の通り。
GETリソースの要求
POSTリソースの送信
PUTリソースの更新(置き換え)
DELETEリソースの削除

パス

アクセスするページの場所。

プロトコルバージョン

利用するHTTP自身のバージョン。

HTTPヘッダ

通信制御やデータ出力制御などに利用する情報。
詳細は下記の「HTTPヘッダ」を参照。

メッセージボディ

リクエストの追加情報。
メッセージボディが存在しないHTTPリクエストメッセージもある。

HTTPレスポンスメッセージ

Webサーバからクライアント(ユーザ)へ送る通信メッセージ。

ステータスライン

ステータスラインはさらに「プロトコルバージョン」「 ステータスコード」「ステータスメッセージ」に分けられる。
 

HTTPヘッダ

通信制御やデータ出力制御などに利用する情報。
詳細は下記の「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ヘッダはエンティティ(メッセージボディ部分の情報)の付加情報として使われるヘッダとして定義されていた。
 
主なヘッダフィールドは以下の表の通り。(参照
 

参考