繁華開(kāi)滿天機(jī)
2019-02-21 18:13:34
先說(shuō)下我對(duì)下面圖片的理解首先,通過(guò)response headers可以得知服務(wù)器沒(méi)有寫(xiě)入強(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ō)明,這到底是什么回事?
2 回答

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
阿里云存儲(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)求。

絕地?zé)o雙
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
你看到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
添加回答
舉報(bào)
0/150
提交
取消