[11] [CODE(HTTP)@en[[[Cache-Control:]]]] [[ヘッダー]]の
[DFN[[CODE(HTTP)@en[[[no-store]]]]]] [[キャッシュ指令]]は、
[[キャッシュ]]に[[蓄積]]してはならないことを表します。

* 仕様書

[REFS[
- [7] [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.5>'''
-- [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.3>'''
- [14] [CITE@en[[[RFC 3229]] - Delta encoding in HTTP]] ([TIME[2014-10-26 21:15:25 +09:00]] 版) <https://tools.ietf.org/html/rfc3229#section-10.8.2>
]REFS]

* 意味

[3] [[要求]]や[[応答]]の [CODE(HTTP)@en[[[Cache-Control:]]]] [[ヘッダー]]の
[CODE(HTTP)@en[[[no-store]]]] [[キャッシュ指令]]は、
[[キャッシュ]]が当該[[要求]]やそれに対する[[応答]]のいずれの部分も[[蓄積]]しては[['''ならない''']]ことを示します
[SRC[>>2, >>12]]。[[キャッシュ]]は不揮発性ストレージに意図的に[[蓄積]]しては[['''なりません''']]し、
揮発性ストレージからも[[転送]]後すみやかに削除するよう最大限努力しなければ[['''なりません''']]
[SRC[>>2, >>12]]。

;; [4] この[[キャッシュ指令]]は、[[共有キャッシュ]]にも[[私的キャッシュ]]にも適用されます
[SRC[>>2, >>12]]。

;; [5] ただしこの[[キャッシュ指令]]は[[プライバシー]]保護のために十分な信頼できる仕組みではありません
[SRC[>>2, >>12]]。

;; [6] この[[キャッシュ指令]]は、[[キャッシュ]]が既存の[[蓄積された応答]]を[[再利用]]することを拒むものではありません。
また既存の[[蓄積された応答]]を削除することを求めるものでもありません。

* 構文

[8] [[引数]]は指定できません [SRC[>>7]]。

* 文脈

[16] 
[[HTTP要求]]の [CODE(HTTP)@en[Cache-Control:]] [[ヘッダー]]に指定できます。

[17] 
[[HTTP応答]]の [CODE(HTTP)@en[Cache-Control:]] [[ヘッダー]]に指定できます。




* 処理

[10] [[HTTPキャッシュ]]については、[[キャッシュ可能性]]、[[キャッシュ項目]]を参照。

[9] [[応答]]の [CODE(HTTP)@en[[[Cache-Control:]] [[no-store]]]]
[[キャッシュ指令]]は、[[HTTPキャッシュ]]だけでなく、 [[AppCache]] にも適用されます。

[18] 
[[bfcache]] も抑制される場合があります。
詳しくは [[bfcache]] 参照。

[HISTORY[

[15] [[応答]]に [CODE(HTTP)@en[[[im]]]] [[キャッシュ指令]]も指定されている場合で、
[[キャッシュ]]が[[実現値操作]]も実装している場合には、
[CODE(HTTP)@en[[[no-store]]]] は無視しなければ[MUST[なりません]] [SRC[>>14]]。
[SEE[ [[im]] ]]

;; [19] [CODE[im]] はほとんど実装されませんでした。

]HISTORY]

* 関連

[20] 
[CODE[no-cache]] と混同されがちです。 [CODE[no-store]] の方が強い拒絶を表しています。
[SEE[ [[no-cache]] ]]

* 歴史

[FIG(quote)[
[FIGCAPTION[
[13] [[RFC 2068]]/[[RFC 2616]] 14.9.2 What May be Stored by Caches [INS[キャッシュは何を蓄積してもよいか]]
]FIGCAPTION]

>
:[INS[no-store]]:
The purpose of the no-store directive is to prevent the inadvertent
release or retention of sensitive information (for example, on backup
tapes). The no-store directive applies to the entire message, and [DEL[may]] [INS[MAY]]
be sent either in a response or in a request. If sent in a request, a
cache MUST NOT store any part of either this request or any response
to it. If sent in a response, a cache MUST NOT store any part of
either this response or the request that elicited it. This directive
applies to both non-shared and shared caches. "MUST NOT store" in
this context means that the cache MUST NOT intentionally store the
information in non-volatile storage, and MUST make a best-effort
attempt to remove the information from volatile storage as promptly
as possible after forwarding it.

[CODE(HTTP)[no-store]] 指令の目的は、 (例えば、バックアップ・テープ上に)
繊細な情報が不注意で放出・記憶されるのを防ぐことです。
[CODE(HTTP)[no-store]] 指令はメッセージ全体に適用され、
応答中でも要求中でも送信して'''構いません'''。要求中で送る場合、
キャッシュはこの要求及びそれに対する応答のどの部分も蓄積しては'''なりません'''。
この指令は、非共有キャッシュにも共有キャッシュにも適用されます。
この文脈で、「蓄積'''してはならない'''」とは。
キャッシュが情報を非揮発性記憶装置に意図的に蓄積しては'''ならず'''、
その情報を送信した後に可及的速やかに揮発性の蓄積装置からも消去する最善の努力を行わなければ'''ならない'''ことを意味します。

> Even when this directive is associated with a response, users [DEL[may]] [INS[might]]
explicitly store such a response outside of the caching system (e.g.,
with a "Save As" dialog). History buffers [DEL[may]] [INS[MAY]] store such responses as
part of their normal operation.

この指令が応答に関連付けられている時であっても、利用者はそのような応答をキャッシュ・システムの外部で
(例えば「名前をつけて保存」対話によって)
陽に蓄積しても構いません。記憶バッファーはそのような応答を通常の操作で蓄積して構いません。

> The purpose of this directive is to meet the stated requirements of
certain users and service authors who are concerned about accidental
releases of information via unanticipated accesses to cache data
structures. While the use of this directive [DEL[may]] [INS[might]] improve privacy in
some cases, we caution that it is NOT in any way a reliable or
sufficient mechanism for ensuring privacy. In particular, malicious
or compromised caches [DEL[may]] [INS[might]] not recognize or obey this directive[DEL[;]][INS[,]] and
communications networks [DEL[may]] [INS[might]] be vulnerable to eavesdropping.

この指令に目的は、キャッシュのデータ構造に対する予想外の接続によって情報が偶発的に放出されることを心配する利用者やサービス著者の要求に応えることです。
この指令の使用は幾つかの場合に個人情報の扱いを改善するかもしれませんが、
プライバシーの確保には信頼可能で十分な仕組みでは'''ない'''ことを警告します。
特に、悪意のあるキャッシュや怪しげなキャッシュは、
この指令を認識したりしたがったりしないかもしれず、
通信網には盗聴の危険があるかもしれません。
]FIG]

[REFS[
- [1] [CITE@en[Web Applications 1.0 r6194     Support 'no-store' in appcache. This means we can now allow cross-origin HTTPS caching, too, without making things worse than the regular HTTP cache.]]
( ([TIME[2011-06-08 08:09:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6193&to=6194>
]REFS]