9. 謝辞 (Acknowledgments)
[RFC7230] の第 10 節を参照。
10. 参照文献 (References)
10.1. 引用文献 (Normative References)
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing", RFC 7230, June 2014.
[RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content", RFC 7231, June 2014.
[RFC7232] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests", RFC 7232, June 2014.
[RFC7233] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Range Requests", RFC 7233, June 2014.
[RFC7235] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Authentication", RFC 7235, June 2014.
10.2. 参考引用文献 (Informative References)
[BCP90] Klyne, G., Nottingham, M., and J. Mogul, "Registration Procedures for Message Header Fields", BCP 90, RFC 3864, September 2004.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.
[RFC5861] Nottingham, M., "HTTP Cache-Control Extensions for Stale Content", RFC 5861, April 2010.
[RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, "Network Time Protocol Version 4: Protocol and Algorithms Specification", RFC 5905, June 2010.
[RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, April 2011.
付録 A. RFC 2616 からの変更点 (Changes from RFC 2616)
本仕様は、明確化のために大幅に書き直された。
認証されたレスポンスをどのような条件でキャッシュできるかが明確化された。(第 3.2 節)
新しいステータスコードは、それらに対するヒューリスティックな新鲜度(freshness)の使用をキャッシュに許可するよう定義できるようになった。クエリコンポーネントを含む URI に対するヒューリスティックな新鲜度をキャッシュが計算することも許可された。(第 4.2.2 節)
年齢(age)を計算するアルゴリズムは、これまでより保守的でなくなった。タイムゾーンを含む日付は、正確に推測できないため、キャッシュは無効なものとして扱わなければならない(MUST)。(第 4.2.3 節)
Content-Location レスポンスヘッダーフィールドは、検証時に使用する適切なレスポンスを決定するためには使用されなくなった。(第 4.3 節)
使用するキャッシュされたネゴシエート済みレスポンスを選択するアルゴリズムは、いくつかの側面で明確化された。特に、選択用ヘッダーフィールドの処理において、ヘッダー固有の正規化を明示的に許可するようになった。(第 4.1 節)
無効化の実行時にサービス拒否攻撃を回避することに関する要件が明確化された。(第 4.4 節)
キャッシュの無効化は、成功したレスポンスを受信した場合にのみ発生する。(第 4.4 節)
キャッシュディレクティブは、大文字と小文字を区別しないものとして明示的に定義された。1 つだけが期待されるときにキャッシュディレクティブの複数のインスタンスが現れた場合の処理が定義された。(第 5.2 節)
"no-store" リクエストディレクティブはレスポンスには適用されない。つまり、キャッシュは no-store を伴うリクエストを満たすことができ、それを無効化するわけではない。(第 5.2.1.5 節)
private および no-cache キャッシュディレクティブの修飾形式は広く実装されていないことが指摘されている。たとえば、多くのキャッシュは "private=foo" を単に "private" として解釈する。さらに、no-cache の修飾形式の意味が明確化された。(第 5.2.2 節)
"no-cache" レスポンスディレクティブの意味が明確化された。(第 5.2.2.2 節)
Expires ヘッダーフィールドの値に対する 1 年間の上限は削除された。代わりに、妥当な値を使用するための理由が示されている。(第 5.3 節)
Pragma ヘッダーフィールドは、後方互換性のためにのみ定義されるようになった。将来の pragma は非推奨とされる。(第 5.4 節)
Warning ヘッダーフィールドの生成および処理に関するいくつかの要件は、広く実装されていないため緩和された。さらに、Warning ヘッダーフィールドは RFC 2047 エンコーディングを使用せず、複数の言語も許可しない。これらの側面は実装されていなかったためである。(第 5.5 節)
本仕様は、キャッシュディレクティブレジストリおよび警告コードレジストリを導入し、新しいキャッシュディレクティブに関する考慮事項を定義する。(第 7.1 節および第 7.2 節)
付録 B. インポートした ABNF (Imported ABNF)
以下のコアルールは、参照により [RFC5234] の付録 B.1 で定義されているものとして含まれる:ALPHA(字母)、CR(復帰)、CRLF(CR LF)、CTL(制御文字)、DIGIT(10 進数 0-9)、DQUOTE(二重引用符)、HEXDIG(16 進数 0-9/A-F/a-f)、LF(改行)、OCTET(任意の 8 ビットのデータ列)、SP(空白)および VCHAR(任意の可視 US-ASCII 文字)。
以下のルールは [RFC7230] で定義されている:
OWS = <OWS, see [RFC7230], Section 3.2.3>
field-name = <field-name, see [RFC7230], Section 3.2>
quoted-string = <quoted-string, see [RFC7230], Section 3.2.6>
token = <token, see [RFC7230], Section 3.2.6>
port = <port, see [RFC7230], Section 2.7>
pseudonym = <pseudonym, see [RFC7230], Section 5.7.1>
uri-host = <uri-host, see [RFC7230], Section 2.7>
以下のルールは他の箇所で定義されている:
HTTP-date = <HTTP-date, see [RFC7231], Section 7.1.1.1>
付録 C. 収集した ABNF (Collected ABNF)
以下の収集した ABNF では、リストルールは [RFC7230] の第 1.2 節に従って展開されている。
Age = delta-seconds
Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS
cache-directive ] )
Expires = HTTP-date
HTTP-date = <HTTP-date, see [RFC7231], Section 7.1.1.1>
OWS = <OWS, see [RFC7230], Section 3.2.3>
Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS
pragma-directive ] )
Warning = *( "," OWS ) warning-value *( OWS "," [ OWS warning-value ]
)
cache-directive = token [ "=" ( token / quoted-string ) ]
delta-seconds = 1*DIGIT
extension-pragma = token [ "=" ( token / quoted-string ) ]
field-name = <field-name, see [RFC7230], Section 3.2>
port = <port, see [RFC7230], Section 2.7>
pragma-directive = "no-cache" / extension-pragma
pseudonym = <pseudonym, see [RFC7230], Section 5.7.1>
quoted-string = <quoted-string, see [RFC7230], Section 3.2.6>
token = <token, see [RFC7230], Section 3.2.6>
uri-host = <uri-host, see [RFC7230], Section 2.7>
warn-agent = ( uri-host [ ":" port ] ) / pseudonym
warn-code = 3DIGIT
warn-date = DQUOTE HTTP-date DQUOTE
warn-text = quoted-string
warning-value = warn-code SP warn-agent SP warn-text [ SP warn-date
]