[9] [CODE(HTTP)@en[[[Cache-Control:]]]] [[ヘッダー]]の 
[DFN[[CODE(HTTP)@en[[[max-stale]]]]]] [[キャッシュ指令]]は、
[[キャッシュ]]が[[腐敗応答]]を返しても構わないことを示します。

* 仕様書

[REFS[
- [8] [CITE@en[RFC 7234 - Hypertext Transfer Protocol (HTTP/1.1): Caching]] ([TIME[2014-09-11 10:19:59 +09:00]] 版) <https://tools.ietf.org/html/rfc7234#section-5.2>
-- [3] '''[CITE@en[RFC 7234 - Hypertext Transfer Protocol (HTTP/1.1): Caching]] ([TIME[2014-09-11 10:19:59 +09:00]] 版) <https://tools.ietf.org/html/rfc7234#section-5.2.1.2>'''
]REFS]

* 意味

[4] [[要求]]における [CODE(HTTP)@en[[[max-stale]]]] [[キャッシュ指令]]は、
[[新鮮寿命]]を超えた[[応答]] ([[腐敗応答]]) 
であっても[[クライアント]]は受け入れる意思があることを示します [SRC[>>3]]。

[5] 値が指定された場合には、指定された[[秒]]数[[以下]]なら[[新鮮寿命]]を超過しても受け入れる意志があることを示します。
値が指定されなかった場合には、[[齢]]に関わらず[[腐敗応答]]を受け入れることを示します。
[SRC[>>3]]

;; [11] 値が指定された場合で指定された秒数より大きな時に他の理由で[[腐敗応答]]を送ることが認められているのか不明瞭です。

* 構文

[6] 値は[[デルタ秒]]です [SRC[>>3]]。

[FIG(railroad)[
= [[デルタ秒]]
]FIG]

[7] 値は指定しなくても、[[字句]]として指定しても[[引用文字列]]として指定しても構いません。
指定する場合[[送信者]]は[[引用文字列]]を使う[['''べきです''']]。 [SRC[>>3]]
[[受信者]]はどちらも受け付ける[['''べきです''']] [SRC[>>8]]。

* 処理モデル

[10] [[キャッシュ]]は原則として[[腐敗応答]]を送ることが認められませんが
([[満期時刻]]参照。)、 [CODE(HTTP)@en[[[max-stale]]]]
[[キャッシュ指令]]はこれを上書きするものです。

;; [[キャッシュ再利用]]、[[キャッシュ項目]]も参照。

* 歴史

- [1] [WEAK[2003-08-16 05:41:13 +00:00]] ''[[名無しさん]]'': <http://web.archive.org/web/20011211210324/www.dais.is.tohoku.ac.jp/logs/agentgripes.html> に、「"Cache-Control: max-stale=0" も、これ [INS[([[CacheFlow]])]] 以外では 滅多に見かけない。(2000/01/14)」と書かれていますが、これは間違いみたいでいまでも使っている [[UA]] は結構いる模様。
- [2] >>1 あ、でも[[串]]についてはどうかわかんないけど。

[12] [CITE@en[RFC 4463 - A Media Resource Control Protocol (MRCP) Developed by Cisco, Nuance, and Speechworks]]
( ([TIME[2014-08-10 06:22:20 +09:00]] 版))
<http://tools.ietf.org/html/rfc4463#section-5.4.10>