エンティティヘッダーフィールド
エンティティヘッダーフィールドは、リクエストメッセージとレスポンスメッセージに含まれるエンティティに使用されるヘッダー
コンテンツの好悪新時間などエンティティに関する情報を付け加える
Allow
Allow: GET, HEAD
Request-URIで指定したリソースがサポートするメソッドの一覧を伝える
サーバーが受け入れられないメソッドを受けると、ステータスコード"405 Method Not Allowed"レスポンスとともに、受け入れ可能なメソッドの一覧を記したAllowヘッダーフィールドを返す
Content-Encoding
Content-Encoding: gzip
Content-Encodingヘッダーフィールドは、サーバーがエンティティボディに対して施したコンテンツコーディングの形式を伝える
コンテンツコーディングの形式
gzip | GNU zipプログラムで圧縮(RFC1952) |
compress | UNIXのcompressプログラムで圧縮 |
deflate | zlibで圧縮(RFC1950) |
identity | エンコーディングなし |
Content-Language
Content-Language: ja
エンティティボディに使用されている自然言語を伝える
Content-Length
エンティティボディの大きさ(bytes)を伝える
エンティティボディに転送コーディング(chunked)が施されていれば、Content-Lengthヘッダーフィールドは使用してはいけない
Content-Location
Content-Location: http://d.hatena.ne.jp/s-kita
メッセージボディに対応するURIを伝える
Locationヘッダーフィールドとは異なり、Content-Locationはメッセージボディで返されるリソースのURIを表す
Content-MD5
Content-MD5ヘッダーフィールドは、メッセージボディが変更されずに届いたことを保障するためにMD5によって作られた値を伝える
メッセージボディに対してMD5でハッシュ値を生成し128ビットのバイナリ値を得たものに、Base64エンコーディングを施した結果をフィールド値に記す
偶発的にメッセージが変更された場合は、それを検知できる
悪意を持ってメッセージが改ざんされた場合は、検知できない場合がある(改ざんしたメッセージでMD5を求めた場合)
Content-Range
Content-Range: 1001-2000/2000
Content-Rangeヘッダーフィールドは、範囲を指定して一部分だけリクエストするレンジリクエストに対するレスポンスに使われる
レスポンスで送っているエンティティがどの部分に該当するかを伝えている
Content-Type
Content-Type: text/html
エンティティボディに含まれるオブジェクトのメディアタイプを伝える
Expires
Expires: Sat, 30 2003 00:00:00 GMT
Expiresヘッダーフィールドは、リソースの有効期限の日時を伝える
キャッシュサーバーが、Expiresヘッダーフィールドを含んだレスポンスを受け取ったら、フィールド値で指定された日時までレスポンスのコピーを保持しておいて、リクエストが来た段階でオリジンサーバーにリソースをとりにいく
オリジンサーバーがキャッシュサーバーにキャッシュされることを望まないときは、Dateヘッダーフィールドのフィールド値と同じ日時にすることが望ましい
Cache-Controlヘッダーフィールドでmax-ageディレクティブが指定されているなら、Expiresヘッダーフィールドよりもmax-ageディレクティブの指定が優先される
Last-Modified
Last-Modified: Mon, 10 Jul 2005 19:20:31 GMT
リソースが最後に更新された日時を伝える
基本的には、Request-URIが指定するリソースが更新された日時だが、CGIで動的なデータを扱う場合、そのデータの最終更新日時になることもある
参考文献:今夜わかるHTTP(上野宣)