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