時間:2023-12-06 15:52:02 作者:無名 瀏覽量:56
谷歌瀏覽器的緩存技術(shù)有助于讓用戶無需每次加載頁面都重復(fù)下載資源,也就是可以提高資源的使用效率進(jìn)而提升網(wǎng)頁的加載速度,當(dāng)然也讓用戶需要返回頁面時直接按后退按鈕就行,而不是重新從服務(wù)器上請求資源。
目前多數(shù)網(wǎng)站都支持緩存后退功能,不過有些網(wǎng)站在 HTTP 標(biāo)頭里設(shè)置了 Cache-Control: no-store 禁止瀏覽器緩存,避免用戶后退時泄露敏感數(shù)據(jù)或重復(fù)請求某些數(shù)據(jù)。
現(xiàn)在谷歌正在對 Chrome 瀏覽器的前進(jìn)和后臺緩存 (往返緩存,即 BFCache) 行為進(jìn)行重大改進(jìn),簡單來說就是谷歌準(zhǔn)備對網(wǎng)站進(jìn)行強行緩存,無論是否設(shè)置了禁止緩存。
谷歌工程師表示,bfcache 可以將整個頁面都保存在內(nèi)存中,如果用戶決定返回,那么瀏覽器可以輕松從緩存里恢復(fù)頁面。
現(xiàn)在谷歌的計劃是直接忽略 Cache-Control: no-store 標(biāo)頭,無論網(wǎng)站是否聲明禁止緩存都會被緩存,從而為用戶帶來更好的體驗。
對開發(fā)者來說這是個問題,因為特別聲明了這個標(biāo)頭就是想要禁止瀏覽器緩存,沒想到現(xiàn)在谷歌出爾反爾,強行緩存可能會導(dǎo)致某些敏感數(shù)據(jù)泄露或者訪問某些過時的數(shù)據(jù)。
針對這類問題谷歌正在 Chrome 測試版中進(jìn)行測試,希望收集開發(fā)者的反饋,用來評估 bfcache 強行緩存帶來的結(jié)果。
Opera 瀏覽器開發(fā)者 Daniel Bratell 對此評論稱,這似乎是一個觸及敏感區(qū)域的問題,我不確定這在現(xiàn)實世界中會如何發(fā)展,即使禁止緩存標(biāo)頭可能會被過度使用也不應(yīng)該徹底禁止無緩存技術(shù)。
另外需提醒的是 bfcache 并不是 HTTP 緩存,從某些方面來說,no-store 只是聲明禁止瀏覽器的 HTTP 緩存,而不是禁止 bfcache 緩存,開發(fā)者不應(yīng)該將 CCNS 標(biāo)頭解釋為頁面不會被 BFCached 的承諾。
Daniel Bratell 提醒開發(fā)者們密切關(guān)注 Chromium 項目的這個變化。