SWRの期間もCDN(Fastly)のキャッシュを使う場合はどうするべきかの話を聞いたので整理する
stale-while-revalidate(SWR)を使うとmax-ageの期限が切れた状態でも、しばらくそのままキャッシュを利用し、かつ、裏で非同期でデータをフェッチさせておくことができる uga-box.hatenablog.com
つまり、max-ageとSWRを一緒に使う場合
max-age + SWR
の期間はユーザはブラウザキャッシュを使うことになる
しかし、CDNではSWRの期間はなくmax-ageのみのキャッシュ有効期間が適用される
※1 でオリジンサーバーにお問い合わせになる
SWRの期間もCDN(Fastly)のキャッシュを使う場合はどうするか
Surrogate-Controlを使う
Surrogate-ControlはFastlyのキャッシュサーバのみに有効な期間を設定できる
これを使うとSWR中もCDNのキャッシュを使用することができる
※2のところ
ただ、Surrogate-Controlが長すぎると、ユーザには古いコンテンツが表示され続けるため調節が必要そう