[2] キャッシュに蓄積されるデータの単位をキャッシュ項目 (cache entry) といいます。
[3] キャッシュ項目は、キャッシュキー (cache key) と、 1つ以上の HTTP応答との組です >>1。この応答のことを蓄積された応答 (stored response) といいます。
[6] キャッシュ項目には、完全なものと不完全なものがあります。
[172] Meter を実装する串の場合、 蓄積された応答について計測数に関するいくつかの値を保持する必要があります。
Meter
[4] キャッシュキーは要求メソッドと対象URLです。 しかし一般的なHTTPキャッシュは GET に対する応答しかキャッシュしないので、 その場合は対象URLだけをキャッシュキーとすることができます。 >>1
GET
[5] 対象資源で内容折衝が使われている場合には、 複数のHTTP応答が蓄積されることになります。 >>1
[176] 蓄積された応答を利用できるかどうかの判定には、蓄積された応答のもととなった要求の情報の一部が必要になります。要求メソッド対象資源蓄積された応答の Vary: ヘッダーで指定された要求のヘッダーIf-None-Match: (226 参照。)
Vary:
If-None-Match:
226
[184] /.well-known/http-opportunistic を使う場合、 代替サービスの認証済み接続で得たものか否かのフラグを保持する必要があります。
/.well-known/http-opportunistic
[8] キャッシュ可能性、検証、条件付き要求、部分要求も参照。
[10] キャッシュからの応答の決定は、次のように行います。
206
266
Date:
Age:
113
Warning:
Cache-Control: max-age
Cache-Control: min-fresh
Cache-Control: no-cache
Cache-Control:
Pragma: no-cache
Cache-Control: must-revalidate
no-cache
Cache-Control: proxy-revalidate
Cache-Control: only-if-cached
:
obs-fold
Transfer-Encoding:
Content-Length:
Connection:
Via:
X-Forwarded-*:
Forwarded:
Host:
Proxy-Authorization:
TE:
Max-Forwards:
Meter:
ETag:
If-Match:
Last-Modified:
If-Unmodified-Since:
If-Modified-Since:
Cache-Control: stale-while-revalidate
304
5xx
1xx
Cache-Control: s-maxage
Cache-Control: no-store
Cache-Control: max-stale
Cache-Control: state-if-error
Cache-Control: max-age=0
110
112
111
502
504
Cache-Control: no-transform
214
200
203
[187] 非妥当化参照。
[179] キャッシュ項目を削除するタイミングについて、仕様上は規定はありません。 腐敗したキャッシュ項目はただちに応答として再利用することはできなくなりますが、 再検証すれば再利用できますから、必ずしも削除しなくても構いません。
[180] キャッシュは、ストレージ容量その他の都合で任意のタイミングでキャッシュ項目を削除できます。
[183] キャッシュは、同じ対象資源や Vary: の新しい応答を蓄積するときに、前のキャッシュ項目を削除したり、置き換えたりできます。
[182] 応答の Cache-Control: retain キャッシュ指令でのデルタ秒の指定は、 指定された秒数が経過した後キャッシュ項目を削除できます。
Cache-Control: retain
retain
[181] キャッシュ項目全体、またはキャッシュ項目に関連付けられた計測数を削除する場合には、 計測数を報告しなければならないことがあります。