surfup

發布後檢查 CDN 和瀏覽器快取

找出舊版 HTML 是由邊緣快取還是瀏覽器快取提供。

CDN 清除快取不會移除訪客瀏覽器已儲存的檔案。請先檢查回應路徑,再進行大範圍清除或提高快取 TTL。

比較 HTML 和版本化資產

  • 在乾淨的瀏覽器工作階段中請求確切的頁面和資產。記錄狀態、Age、Cache-Control、ETag/Last-Modified,以及存在時的 CDN 快取狀態標頭。
  • 確認 HTML 在導覽時會重新驗證,含內容雜湊的 JS/CSS 則使用長期快取。絕不要對可變更的網址套用不可變且為期一年的政策。

只清除過期的那一層

  • 若 CDN 回傳舊位元組,只清除確切網址或版本,並從兩個網路重新檢查。若只有一個瀏覽器過期,請先用新設定檔測試,再變更邊緣規則。
  • 變更後分別驗證已登入和公開頁面。個人化回應不應進入共用快取;擷取標頭並保留先前規則的復原版本。

範例與預期結果

  • 對頁面執行 curl -sS -D page.headers -o page.html PAGE_URL;對含雜湊的資產使用不同名稱,例如 asset.headers 和 asset.bin。檢查儲存的 page.html,或將組建識別碼與來源伺服器比較。部署後重複執行兩個 GET 請求,比較 Age 和 CDN 狀態標頭;也要檢查 Cache-Control 和 ETag。HTML 預設可能不會快取,因此請先檢查網站實際規則。
  • 若只有一個瀏覽器設定檔的內容過期,請檢查其 service worker 和本機快取。若 CDN 回傳舊的 HIT,請清除確切受影響路徑,並在新的設定檔中重試。若來源伺服器也回傳舊內容,請先修正部署/來源伺服器。不要清除無關路徑。

主要來源