HTTPヘッダーフィールド1

HTTPリクエストメッセージ

[リクエストライン(メソッド URI HTTPバージョン)]
[リクエストヘッダーフィールド]
[汎用ヘッダーフィールド]
[エンティティヘッダーフィールド]
[その他]
    空行(CRLF)
[メッセージボディ]



レスポンスメッセージ

[ステータスライン(HTTPバージョン ステータス 説明)]
[レスポンスヘッダーフィールド]
[汎用ヘッダーフィールド]
[エンティティヘッダーフィールド]
[その他]
     空行(CRLF)
[メッセージボディ]



HTTPヘッダーフィールド

汎用ヘッダーフィールド(General Header Field)リクエストメッセージとレスポンスメッセージの両方で使われるヘッダー
リクエストヘッダーフィールド(Request Header Fields)クライアントからサーバーへ送信されるリクエストメッセージに使われるヘッダー
レスポンスヘッダー(Response Header Fields)サーバーからクライアントに対して送信されるレスポンスメッセージに使われるヘッダー。
エンティティヘッダーフィールド(Entity Header Fields)リクエストメッセージとレスポンスメッセージに含まれるエンティティに使われるヘッダー。コンテンツの更新時間などのエンティティに関する情報を付加する。




汎用ヘッダーフィールド

ホップバイホップヘッダー、コネクションの管理
Cache-Controlキャッシング動作の指定1.1
Connection1.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言語(自然言語)の優先度
AuthorizationWeb認証のための情報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-AgentHTTPクライアントの実装情報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
ServerHTTPサーバーの実装情報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リソースに対応する代替URI1.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(上野宣)