Nginx與瀏覽器緩存的處理方法
一、瀏覽器對(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)中添加??梢栽O(shè)置各種資源的緩存策略,不僅僅是HTML。而<meta http-equiv>節(jié)點(diǎn)只針對(duì)HTML
#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仍然起著作用。
<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ǎng)站的支持!
相關(guān)文章
配置ab來(lái)為Nginx服務(wù)器做壓力測(cè)試的方法
這篇文章主要介紹了配置ab來(lái)為Nginx服務(wù)器做壓力測(cè)試的方法,ab是針對(duì)Apache的測(cè)試工具但本文講解其測(cè)試Nginx的過(guò)程,需要的朋友可以參考下2016-01-01
CentOS 6.7下nginx SSL證書(shū)部署的方法
這篇文章主要介紹了在CentOS 6.7下nginx SSL證書(shū)部署的方法,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-03-03
Nginx上配置Basic Authorization登錄認(rèn)服務(wù)證的教程
現(xiàn)在我們所使用的包括社交網(wǎng)絡(luò)API等開(kāi)放平臺(tái)授權(quán)獲得用戶的用戶名和密碼一般有兩種認(rèn)證方式,一種是Basic Auth,一種是OAuth,這里我們就來(lái)看一下Nginx上配置Basic Authorization登錄認(rèn)服務(wù)證的教程2016-06-06
Debian下搭建Nginx和Tomcat服務(wù)器實(shí)現(xiàn)負(fù)載均衡的方案
這篇文章主要介紹了Debian下搭建Nginx和Tomcat服務(wù)器實(shí)現(xiàn)負(fù)載均衡的方案,其主要思想依然是動(dòng)靜分離并且以Nginx來(lái)進(jìn)行反向代理這樣的路子,需要的朋友可以參考下2015-12-12
nginx+lua單機(jī)上萬(wàn)并發(fā)的實(shí)現(xiàn)
nginx是我們最常用的服務(wù)器,常用于做內(nèi)容分發(fā)和反向代理,本文主要介紹了nginx+lua單機(jī)上萬(wàn)并發(fā)的實(shí)現(xiàn),有興趣的可以了解下2021-05-05
docker nginx實(shí)現(xiàn)一個(gè)主機(jī)部署多個(gè)站點(diǎn)操作
這篇文章主要介紹了docker nginx實(shí)現(xiàn)一個(gè)主機(jī)部署多個(gè)站點(diǎn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11

