[5] [CODE(HTTP)@en[[[Cache-Control:]]]] [[ヘッダー]]の 
[DFN[[CODE(HTTP)@en[[[only-if-cached]]]]]] [[キャッシュ指令]]は、
[[起源鯖]]ではなく[[キャッシュ]]から[[応答]]を返すべきことを表します。

* 仕様書

[REFS[
- [6] [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] '''[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.7>'''
]REFS]

* 意味

[2] [[要求]]の [CODE(HTTP)@en[[[Cache-Control:]]]] [[ヘッダー]]の
[CODE(HTTP)@en[[[only-if-cached]]]] [[キャッシュ指令]]は、
[[クライアント]]が[[蓄積された応答]]を取得することのみを望んでいることを示します [SRC[>>1]]。

* 構文

[7] [[引数]]は認められていません [SRC[>>6]]。

* 処理モデル

[3] [[キャッシュ]]は、[[要求]]の他の制約を満たす[[蓄積された応答]]を使って[[応答]]するか、
または [CODE(HTTP)[[[504]]]] [[応答]]を返すかのいずれかとする[['''べきです''']] [SRC[>>1]]。

[4] ただし内部的に相互接続された[[キャッシュ]]群においては、他の[[キャッシュ]]に[[転送]]しても構いません
[SRC[>>1]]。

* メモ

[8] [CODE(HTTP)@en[[[only-if-cached]]]] が指定されていても、
[[鯖]]が[[キャッシュ]]でない場合や [CODE(HTTP)@en[[[only-if-cached]]]]
に対応していない場合には、無視して通常の[[応答]]が返されることになります。
[[キャッシュ]]が返したかどうかは、確実ではありませんが [CODE(HTTP)@en[[[Age:]]]]
[[ヘッダー]]の有無でほぼ判断できます。


[9] [CITE@en[Fix #39: drop cache mode "only-if-cached" per security review · whatwg/fetch@886255d]]
([TIME[2015-11-08 16:34:14 +09:00]] 版)
<https://github.com/whatwg/fetch/commit/886255d8450b82418847d896c39a2aa85b35429b>

[10] [CITE@en[Clarify the redirect situation for "only-if-cached"]]
( ([[annevk]]著, [TIME[2016-05-27 17:11:58 +09:00]]))
<https://github.com/whatwg/fetch/commit/866902378689cddc13b9e68f9e505bcc65307711>