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

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

先說(shuō)下我對(duì)下面圖片的理解

clipboard.png

clipboard.png

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

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

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

回答
編輯回答
遺莣

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

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

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

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

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

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

2017年2月25日 06:53