Cache-Control和Expires無效的原因


在用chrome訪問一個網站時會發現不同的請求有的被緩存了有的沒有,

但他們都有相同的Response Header信息比如:

Accept-Ranges:bytes
Cache-Control:public, max-age=31295475
Connection:Keep-Alive
Content-Language:en
Content-Length:154488
Content-Type:image/png
Date:Mon, 07 Jan 2019 08:15:11 GMT
Expires:Sat, 04 Jan 2020 21:26:28 GMT
Keep-Alive:timeout=5, max=97

原因如下:

如果在同一標簽中對同一URI的另一個請求后立即發出請求(通過單擊刷新按鈕,或F5之類的Google Chrome會忽略該標頭Cache-ControlExpires標頭它可能有一個算法來猜測用戶真正想做什么。

測試Cache-Control標題的一種方法是返回帶有自身鏈接的HTML文檔。點擊該鏈接后,Chrome會從緩存中投放文檔。

也就是說同樣的設置的請求,也就是截圖中顯示沒被緩存的連接,通過在新窗口打開,其實是可以看到為304的,也就是說已經被緩存了,所以這只是一個chrome本身的決策問題而已,和我們自己的代碼無關。

經測試在IE和firefox上也有同樣的現象,原因應該是和chrome類似了。

詳細解答可看:

https://stackoverflow.com/questions/11245767/is-chrome-ignoring-cache-control-max-age


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM