時間:2023-12-06 15:52:02 作者:無名 瀏覽量:56
谷歌瀏覽器的緩存技術有助于讓用戶無需每次加載頁面都重復下載資源,也就是可以提高資源的使用效率進而提升網頁的加載速度,當然也讓用戶需要返回頁面時直接按后退按鈕就行,而不是重新從服務器上請求資源。
目前多數網站都支持緩存后退功能,不過有些網站在 HTTP 標頭里設置了 Cache-Control: no-store 禁止瀏覽器緩存,避免用戶后退時泄露敏感數據或重復請求某些數據。
現在谷歌正在對 Chrome 瀏覽器的前進和后臺緩存 (往返緩存,即 BFCache) 行為進行重大改進,簡單來說就是谷歌準備對網站進行強行緩存,無論是否設置了禁止緩存。

谷歌工程師表示,bfcache 可以將整個頁面都保存在內存中,如果用戶決定返回,那么瀏覽器可以輕松從緩存里恢復頁面。
現在谷歌的計劃是直接忽略 Cache-Control: no-store 標頭,無論網站是否聲明禁止緩存都會被緩存,從而為用戶帶來更好的體驗。
對開發者來說這是個問題,因為特別聲明了這個標頭就是想要禁止瀏覽器緩存,沒想到現在谷歌出爾反爾,強行緩存可能會導致某些敏感數據泄露或者訪問某些過時的數據。
針對這類問題谷歌正在 Chrome 測試版中進行測試,希望收集開發者的反饋,用來評估 bfcache 強行緩存帶來的結果。
Opera 瀏覽器開發者 Daniel Bratell 對此評論稱,這似乎是一個觸及敏感區域的問題,我不確定這在現實世界中會如何發展,即使禁止緩存標頭可能會被過度使用也不應該徹底禁止無緩存技術。
另外需提醒的是 bfcache 并不是 HTTP 緩存,從某些方面來說,no-store 只是聲明禁止瀏覽器的 HTTP 緩存,而不是禁止 bfcache 緩存,開發者不應該將 CCNS 標頭解釋為頁面不會被 BFCached 的承諾。
Daniel Bratell 提醒開發者們密切關注 Chromium 項目的這個變化。