一、瀏覽器對(duì)緩存的處理:Internet選項(xiàng)
★ 控制請(qǐng)求服務(wù)器策略:是忽略資源的緩存策略的情況下額外強(qiáng)制請(qǐng)求服務(wù)器的意思。
★ 檢查存儲(chǔ)的頁(yè)面較新版本
1.每次訪問(wèn)網(wǎng)頁(yè)時(shí)
不管是否有緩存、資源狀態(tài)是否過(guò)期,都會(huì)再次請(qǐng)求服務(wù)器。
2.每次啟動(dòng)Internet Explorer時(shí)
不管是否有緩存、資源狀態(tài)是否過(guò)期,都會(huì)再次請(qǐng)求服務(wù)器。
3.自動(dòng)
大體上和2是一樣的,只是對(duì)于圖片的策略有點(diǎn)不同。
4.從不
完全按照資源的緩存策略來(lái)請(qǐng)求服務(wù)器。
★ F5 刷新:請(qǐng)求服務(wù)端,但是會(huì)根據(jù)和服務(wù)器對(duì)比文件來(lái)確定是否下載
★ Ctrl + F5刷新:一定會(huì)去服務(wù)器下載。
二、緩存控制策略
★L(fēng)ast-Modified/If-Modified-Since要配合Cache-Control使用,Etag/If-None-Match也要配合Cache-Control使用。
ps: 分布式系統(tǒng)里多臺(tái)機(jī)器間文件的last-modified必須保持一致,以免負(fù)載均衡到不同機(jī)器導(dǎo)致比對(duì)失敗
分布式系統(tǒng)盡量關(guān)閉掉Etag(每臺(tái)機(jī)器生成的etag都會(huì)不一樣)
★HTML通過(guò)meta的http-equiv屬性控制瀏覽器緩存策略:通過(guò)設(shè)置Pragma和Cache-control和expires控制
ps:只能控制html的緩存策略,不能控制css/js/圖片的緩存策略。
Cache-control的max-age和expires同時(shí)存在,那么先處理max-age。
Cache-control指定了no-cache后,max-age和expires。
Pragma: http 1.0 IE瀏覽器才識(shí)別,請(qǐng)求頭中不會(huì)體現(xiàn),但是確實(shí)有效果
Cache-control: http 1.1
三、Nginx設(shè)置瀏覽器緩存
★Nginx設(shè)置瀏覽器緩存:可以在http 、server、location節(jié)點(diǎn)中添加。可以設(shè)置各種資源的緩存策略,不僅僅是HTML。而<meta http-equiv>節(jié)點(diǎn)只針對(duì)HTML
1
2
3
4
5
6
7
8
9
10
11
12
|
#add_header Cache-Control no-cache; #add_header Cache-Control private; add_header Cache-Control max-age=7200; if ($request_filename ~* ^.*?\.(ico|jpeg|gif|jpg|png|woff)$){ expires 7d; } if ($request_filename ~* ^.*?\.(js|css)$){ expires 7d; } if ($request_filename ~* ^.*?\.(html|htm)$){ expires 3d; } |
★Nginx中的配置會(huì)覆蓋HTML的http-equiv="Cache-control"配置。
但是如果HTML中的加了下面3個(gè)標(biāo)簽,瀏覽器端效果還是只能no-cache。(從效果上來(lái)看:Nginx的Cache-control配置無(wú)效)
因?yàn)镹ginx的Cache-control配置只是覆蓋了Cache-control(如果html加的是后面兩個(gè)標(biāo)簽,Nginx還是有效的),而Pragma仍然起著作用。
1
2
3
|
<meta http-equiv= "Pragma" content= "no-cache" /> <meta http-equiv= "Cache-control" content= "no-cache;max-age=0" /> <meta http-equiv= "expires" content= "0" /> |
總結(jié)
以上所述是小編給大家介紹的Nginx與瀏覽器緩存的處理方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
原文鏈接:https://www.cnblogs.com/caoshouling/archive/2018/04/28/8966062.html