HTTPリクエストメッセージ
[リクエストライン(メソッド URI HTTPバージョン)]
[リクエストヘッダーフィールド]
[汎用ヘッダーフィールド]
[エンティティヘッダーフィールド]
[その他]
空行(CRLF)
[メッセージボディ]
レスポンスメッセージ
[ステータスライン(HTTPバージョン ステータス 説明)]
[レスポンスヘッダーフィールド]
[汎用ヘッダーフィールド]
[エンティティヘッダーフィールド]
[その他]
空行(CRLF)
[メッセージボディ]
HTTPヘッダーフィールド
汎用ヘッダーフィールド(General Header Field) | リクエストメッセージとレスポンスメッセージの両方で使われるヘッダー |
リクエストヘッダーフィールド(Request Header Fields) | クライアントからサーバーへ送信されるリクエストメッセージに使われるヘッダー |
レスポンスヘッダー(Response Header Fields) | サーバーからクライアントに対して送信されるレスポンスメッセージに使われるヘッダー。 |
エンティティヘッダーフィールド(Entity Header Fields) | リクエストメッセージとレスポンスメッセージに含まれるエンティティに使われるヘッダー。コンテンツの更新時間などのエンティティに関する情報を付加する。 |
汎用ヘッダーフィールド
Cache-Control | キャッシング動作の指定 | 1.1 |
Connection | | ホップバイホップヘッダー、コネクションの管理1.1 |
Date | メッセージ生成日時 | 1.0, 1.1 |
Pragma | メッセージディレクティブ | 1.0, 1.1 |
Trailer | メッセージの終わりにあるヘッダーの一覧 | 1.1 |
Transfer-Encoding | メッセージボディの転送コーディング形式の指定 | 1.1 |
Upgrade | 他のプロトコルへのアップグレード | 1.1 |
Via | プロキシサーバーに関する情報 | 1.1 |
Warning | エラー通知 | 1.1 |
リクエストヘッダーフィールド
Accept | ユーザーエージェントが処理できるメディアタイプ | 1.1 |
Accept-Charset | 文字セットの優先度 | 1.1 |
Accept-Encoding | コンテンツエンコーディングの優先度 | 1.1 |
Accept-Language | 言語(自然言語)の優先度 | |
Authorization | Web認証のための情報 | 1.0, 1.1 |
Expect | サーバーに対して特定動作の期待 | 1.1 |
From | ユーザーのメールアドレス | 1.0, 1.1 |
Host | 要求されたリソースのホスト | 1.1 |
If-Match | エンティティタグの比較 | 1.1 |
If-Modified-Since | リソースの更新時間の比較 | 1.0, 1.1 |
If-None-Match | エンティティタグの比較(If-Matchの逆) | 1.1 |
If-Range | リソースが変更されていない場合にエンティティのバイト範囲の要求を送信 | 1.1 |
If-Unmodified-Since | リソースの更新時間の比較(If-Modified-Sinceの逆) | 1.1 |
Max-Forwards | 最大転送ホップ数 | 1.1 |
Proxy-Authorization | プロキシサーバーのクライアント認証のための情報 | 1.1 |
Range | エンティティのバイト範囲の要求 | 1.1 |
Referer | リクエスト中のURIの取得元 | 1.0, 1.1 |
TE | 転送エンコーディングの優先度 | 1.1 |
User-Agent | HTTPクライアントの実装情報 | 1.0, 1.1 |
レスポンスヘッダーフィールド
Accept-Ranges | バイト範囲の要求が受け入れ可能かどうか | 1.1 |
Age | リソースの推定経過時間 | 1.1 |
ETag | リソース特定のための情報 | 1.1 |
Location | クライアントを指定したURIにリダイレクト | 1.0, 1.1 |
Proxy-Authenticate | プロキシサーバーのクライアント認証のための情報 | 1.1 |
Retry-After | リクエスト再試行のタイミング要求 | 1.1 |
Server | HTTPサーバーの実装情報 | 1.0, 1.1 |
Vary | プロキシサーバーに対してのキャッシュの管理情報 | 1.1 |
WWW-Authenticate | サーバーのクライアント認証のための情報 | 1.0, 1.1 |
エンティティヘッダーフィールド
Allow | リソースがサポートするHTTPメソッド | 1.0, 1.1 |
Content-Encoding | エンティティボディに適用されるコンテンツエンコーディング | 1.0, 1.1 |
Content-Language | エンティティの自然言語 | 1.0, 1.1 |
Content-Length | エンティティボディのサイズ(単位はバイト) | 1.0, 1.1 |
Content-Location | リソースに対応する代替URI | 1.1 |
Content-MD5 | エンティティボディのメッセージダイジェスト | 1.1 |
Content-Range | エンティティボディの範囲の位置 | 1.1 |
Content-Type | エンティティボディのメディアタイプ | 1.0, 1.1 |
Expires | エンティティボディの有効期限の日時 | 1.0, 1.1 |
Last-Modified | リソースの最終更新日時 | 1.0, 1,1 |
エンドトゥエンドヘッダー、ホップバイホップヘッダー
キャッシュと非キャッシュプロキシの振る舞いを定義する目的のために、ヘッダーフィールドを2つのカテゴリに分類エンドトゥエンドヘッダー(End-toend Headers)
リク
エスト、レスポンスの最後の受信者宛に転送されるヘッダー。
キャッシュから構築されたレスポンスの中に保存されなければならず、また転送されなければならない。
ホップバイホップヘッダー(Hot-by-hop Headers)
一度の転送に対して有効で、キャッシュやプロキシによって転送されたりしないものもある。
HTTP/1.1やそれ以降で使用されるホップバイホップヘッダーは、Connectionヘッダーフィールドに列挙する必要がある。
HTTP/1.1のホップバイホップヘッダー
Connection |
Keep-Alive |
Proxy-Authenticate |
Proxy-Authorization |
Trailers |
TE |
Transfer-Encoding |
Upgrade |
これら以外は、エンドトゥエンドヘッダーになる
参考文献:今夜わかるHTTP(上野宣)