鍍金池/ 問答/Java  PHP  HTML/ 關(guān)于瀏覽器緩存的問題,求助

關(guān)于瀏覽器緩存的問題,求助

先說下我對下面圖片的理解

clipboard.png

clipboard.png

首先,通過response headers可以得知服務(wù)器沒有寫入強(qiáng)緩存,也就是cache-control或者expires,
然后,我們看到ETag和last-Modified,說明服務(wù)器是使用的協(xié)商緩存

現(xiàn)在我遇到的問題是,下面的狀態(tài)碼200,
按照我的理解應(yīng)該是,當(dāng)沒有設(shè)置強(qiáng)緩存的情況下,瀏覽器每次向服務(wù)器請求該資源,服務(wù)器接收到請求后,通過協(xié)商緩存判斷該資源是否被更新,如果沒有更新則返回304狀態(tài)碼,告訴瀏覽器直接使用緩存數(shù)據(jù),如果資源被更新,則發(fā)送更新后資源,返回200狀態(tài)碼。

但是,下面的資源我很確定沒有被更新,應(yīng)該從緩存中取得數(shù)據(jù)并且返回304狀態(tài)碼,可是顯示的卻是200狀態(tài)碼,而且response中也攜帶了服務(wù)器返回的數(shù)據(jù),并且還有from disk cache說明,這到底是什么回事?

回答
編輯回答
遺莣

阿里云存儲(chǔ)如何讓瀏覽器始終以200 (from cache)緩存圖片?

ETag也有他自己的問題,同一個(gè)文件在不同物理機(jī)上的inode是不同的,這就導(dǎo)致了在分布式的Web系統(tǒng)中,當(dāng)訪問落在不同的物理機(jī)上時(shí)會(huì)返回不同的ETag,進(jìn)而導(dǎo)致304失效,降級(jí)為200請求。

2017年8月29日 02:00
編輯回答
有你在

你看到200可能是因?yàn)槟阆氩榭此遣皇?00導(dǎo)致的變成了200
有這些可能
1.你的瀏覽器在開發(fā)工具中設(shè)置了, 不緩存。所有http頭中關(guān)于緩存的控制全部失效
2.你在瀏覽器里面按了F5或者刷新按鈕,瀏覽器也會(huì)重新請求,忽略cache-control的控制
3.你把這個(gè)css文件在新的tab或者新的窗口打開了, 這樣也會(huì)出現(xiàn)響應(yīng)碼是200

2017年9月1日 12:48
編輯回答
女流氓

應(yīng)該是html中設(shè)置了cache-control

2017年2月25日 06:53