http强缓存在firefox和chrome之间的差异
最近回顧HTTP緩存知識的時候發(fā)現(xiàn)了一個問題,設置了強緩存和協(xié)商緩存的文件,點擊瀏覽器的刷新按鈕的時候在chrome和firefox中的表現(xiàn)不一樣。具體表現(xiàn)為chrome走強緩存沒有再次發(fā)起請求。firefox卻在強緩存沒有失效的情況下發(fā)了請求,返回了304走了協(xié)商緩存。
chrome請求截圖:
firefox請求截圖:
上面兩種表現(xiàn)截然相反,但是并沒有錯誤。主要原因在于瀏覽器點擊刷新按鈕時是否使用強緩存的實現(xiàn)各個瀏覽器不同。參考盜圖如下:
通過測試發(fā)現(xiàn)firefox的http緩存完全符合上圖描述,所以不是firefox的強緩存失效,而是在firefox中本來點擊刷新按鈕就應該忽略強緩存。而chrome刷新按鈕使用強緩存是對http緩存的一種優(yōu)化。所以兩者應該都是對的。
在firefox沒有304的驗證在目前來說還是很有用的,現(xiàn)在大部分網頁都是工程化的結果,打包出來的文件名稱都帶上了hash,只要內容變了那么文件名一定會變化,反過來說文件名沒有變那么內容一定沒有改變,再去驗證304就少了很多必要。
關于304的非必要性,詳情可查參考1。
參考
[譯] 這項瀏覽器調整使 Facebook 收到的網絡請求減少了 60%
徹底理解瀏覽器緩存機制
http協(xié)議請求響應頭中參數(shù)的疑問??
瀏覽器緩存機制
總結
以上是生活随笔為你收集整理的http强缓存在firefox和chrome之间的差异的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自求
- 下一篇: IE9下apply的使用方式