[1] [CODE(HTTP)@en[[[Cache-Control:]]]] [[ヘッダー]]の
[DFN[[CODE(HTTP)@en[[[max-age]]]]]] [[キャッシュ指令]]は、
[[キャッシュ]]が[[応答]]に利用できる[[齢]]の最大値を指定するものです。

* 仕様書

[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>
-- [2] '''[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.1>'''
-- [12] '''[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.2.8>'''
- [17] [CITE[UPnP Device Architecture 2.0]] ([TIME[2014-09-05 02:24:48 +09:00]] 版) <http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v2.0.pdf#page=30>
]REFS]

* 意味

[6] [[要求]]の [CODE(HTTP)@en[[[Cache-Control:]]]] [[ヘッダー]]の
[CODE(HTTP)@en[[[max-age]]]] [[キャッシュ指令]]は、
[[クライアント]]が指定された[[秒]]数よりも大きな[[齢]]の[[応答]]を受け付ける意思がないこと、
[CODE(HTTP)@en[[[max-stale]]]] [[キャッシュ指令]]も併用されない限り[[腐敗応答]]を受け付ける意思がないことを示します
[SRC[>>2]]。

[13] [[応答]]の [CODE(HTTP)@en[[[Cache-Control:]]]] [[ヘッダー]]の
[CODE(HTTP)@en[[[max-age]]]] [[キャッシュ指令]]は、
指定[[秒]]数より[[齢]]が大きくなれば[[腐敗]]と考えるべきことを示します [SRC[>>12]]。

;; [14] [[蓄積された応答]]が[[腐敗]]している場合、通常はそれを[[再利用]]することはできません。[[検証]]して[[齢]]をリセットすることで、[[再利用]]できる可能性はあります。

[19] [[SSDP]] では、[[広告]]が有効な[[秒]]数を表します [SRC[>>17]]。

* 構文

[3] [[引数]]の値は [CODE(HTTP)@en[[[delta-seconds]]]] です [SRC[>>2, >>12]]。

[FIG(railroad)[
= [[デルタ秒]]
]FIG]

[5] 仕様上明記されていませんが、[[引数]]は必須と思われます。

[7] [[引数]]は[[字句]]と[[引用文字列]]のいずれで表現することもできますが、
[[送信者]]は[[字句]]を使う[['''べきです''']] [SRC[>>2, >>12]]。
[[受信者]]はどちらも受け付ける[RUBYB[べき]@en[ought to]]です [SRC[>>8]]。

* 文脈

[9] [[キャッシュ再利用]]の際に利用する[[表現]]を選択するために[[キャッシュ]]が指定することがあります。

;; [[キャッシュ再利用]]を参照。

* 処理モデル

[11] [[キャッシュ再利用]]、[[キャッシュ項目]]を参照。

* 歴史

[10] [CITE@en[RFC 7252 - The Constrained Application Protocol (CoAP)]]
( ([TIME[2014-06-27 00:59:37 +09:00]] 版))
<http://tools.ietf.org/html/rfc7252#section-5.10.5>

* 実装

[4] [CITE[Squidのキャッシュの消し方 : blog.nomadscafe.jp]]
([TIME[2009-07-12 17:52:09 +09:00]] 版)
<http://blog.nomadscafe.jp/archives/000741.html>

* 関連

[15] [CODE(HTTP)@en[[[Expires:]]]] [[ヘッダー]]と似ていますが、
[CODE(HTTP)@en[[[Expires:]]]] は[[絶対日時]]を指定するものです。

;; [[キャッシュ再利用]]を参照。

[18] [[HTTP/1.0]] [[串]]に[[キャッシュ]]させず、比較的新しい[[串]]にのみ[[キャッシュ]]を許すため、
[CODE(HTTP)@en[[[Expires:]]]] に[[キャッシュ]]されないような日付を指定し、
[CODE(HTTP)@en[[[max-age]]]] に[[キャッシュ]]されるような値を指定する技法が使われることがありました。

;; [CODE(HTTP)@en[[[Expires:]]]] 参照。

[16] [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>