← 戻る

Thu Mar 28 2024 23:02:09 GMT+0000 (Coordinated Universal Time)

このページはサーバーサイドで new Date() し、HTTPレスポンスに
Cache-Control:public, max-age=0, s-maxage=10, stale-while-revalidate=31536000
に設定している


加えて、SSR時に奇数分なら Status Code 500 で返す

つまりStatus Codeが200のときに、一度ページがキャッシュされてから10秒間はキャッシュから返却(時刻が変わらない)し、
10秒経過以降〜1年以内で1番目のアクセスはキャッシュから返却しつつ裏でキャッシュ更新、2番目以降のアクセスでキャッシュ更新が完了していれば、更新済みの新しいキャッシュ(時刻が更新されている)を返却 → いつもはやくてすごい 🚀

加えてサーバー側エラー時でも、キャッシュに正常な物があればそこから返却する(理論上1年間) → いつでもオンライン 💪
サーバーエラー時はキャッシュされない

※FIrebase HostingのCDN(Fastly)では stale-while-revalidate を使用すれば デフォルトでエラー時でもキャッシュから返す stale-if-error な動作が行われるっぽい?
RFC5861にはstale-while-revalidateのオリジンサーバーエラー時の記述はないが、まぁ便利なんじゃない?