Cacheしないresponseの指定
使用しているCDNなどに合わせて修正する必要がある
こうする
code:response
Cache-Control: private, no-store, no-cache, must-revalidate
Cache-Control: private
private cacheのみを使用する指定
そもそも、privateな情報がsharedにcacheされることでインシデントに繋がるので、それを防ぐ
CDNによっては、privateがないとcacheする、のようなワケワカラン実装のものもある
ref Fastlyは、no-storeを指定してもcacheする
Cache-Control: no-store
これが本来の意味での「cacheしない」の指定
Cache-Control: no-cache
cacheはするが、そのcacheをそのまま使用させない
これを指定する理由があまりわからない #??
これだけを省略した場合に、cacheされるような実装とかありうるのか?
Cache-Control: must-revalidate
Originが落ちた場合に、cacheを使い続けないようにする
mdnでは以下の複数指定は、意味的に競合しているので無意味と書かれている
code:response
# 競合
Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
# 以下のものと等しい
Cache-Control: no-store
これは、全てのBrowserやProxyやCDNの実装がRFCに則っていたらそうだろう
しかし、実際はそんなことはないので複数個指定したほうが確実、になる
実際、no-storeだけ書いていてもcacheするCDNが存在する
参考
/mrsekut-book-4297119250/177 (3.9 キャッシュをさせたくない場合のCache-Control)
#WIP
cache可能なmethodのpostの対応
postの場合は、no-storeを付ける
https://www.tohoho-web.com/wwwxx008.htm
https://vector.hateblo.jp/entry/2017/06/24/122724#:~:text=対策となる-,キャッシュされないようにする方法,-Twitterで動的
https://turningp.jp/network_and_security/http_header-cache