欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx expires控制頁面緩存

 更新時(shí)間:2013年01月12日 16:12:31   作者:  
expires 指令可以控制 HTTP 應(yīng)答中的“Expires ”和“ Cache-Control ”的頭標(biāo)(起到控制頁面緩存的作用)
語法:expires [time|epoch|max|pff]默認(rèn)值:offexpires指令控制HTTP應(yīng)答中的“Expires”和“Cache-Control”Header頭部信息,啟動(dòng)控制頁面緩存的作用time:可以使用正數(shù)或負(fù)數(shù)?!癊xpires”頭標(biāo)的值將通過當(dāng)前系統(tǒng)時(shí)間加上設(shè)定time值來設(shè)定。time值還控制"Cache-Control"的值:負(fù)數(shù)表示no-cache正數(shù)或零表示max-age=time epoch:指定“Expires”的值為 1January,1970,00:00:01 GMTmax:指定“Expires”的值為31December2037 23:59:59GMT,"Cache-Control"的值為10年。-1:指定“Expires”的值為當(dāng)前服務(wù)器時(shí)間-1s,即永遠(yuǎn)過期。off:不修改“Expires”和"Cache-Control"的值

expires使用了特定的時(shí)間,并且要求服務(wù)器和客戶端的是中嚴(yán)格同步。
而Cache-Control是用max-age指令指定組件被緩存多久。
對(duì)于不支持http1.1的瀏覽器,還是需要expires來控制。所以最好能指定兩個(gè)響應(yīng)頭。但HTTP規(guī)范規(guī)定max-age指令將重寫expires頭。

如果不想讓代理或?yàn)g覽器緩存,加no-cache參數(shù)或private參數(shù):
# expires 1d;
add_header Cache-Control no-cache;
add_header Cache-Control private;
這樣瀏覽器F5刷新時(shí),返回的依然是200,而不是304.

記錄一個(gè)nginx控制緩存的例子:
       expires 1d;
       add_header Cache-Control no-cache;
       add_header Cache-Control private;
       if ( !-e $request_filename) {
       rewrite ^(.*) http://test.zhaopin.com/index.html break;
  #   add_header Cache-Control no-cache;
  #   add_header Cache-Control private;
當(dāng)我將add_header寫在rewrite之后時(shí),發(fā)現(xiàn)add_header竟然不起作用了。。是因?yàn)閷戇M(jìn)了if里面..


apache的mod_expires模塊使得在使用expires頭時(shí)能像max-age那樣以相對(duì)的方式設(shè)置日期,通過ExpiresDefault指令完成。例如:圖片等過期時(shí)間為請(qǐng)求開始的10年之后
<FileMatch"\.(gif|jpg|js|css)$">
ExpiresDefault "access plus 10years"
</FileMatch>
它像響應(yīng)中發(fā)送Expires頭和Cache-Control max-age頭。

expires|etag控制頁面緩存區(qū)別expires:像上面文章提到的:expires指令控制HTTP應(yīng)答中的“Expires”和“Cache-Control”Header頭部信息,啟動(dòng)控制頁面緩存的作用time:可以使用正數(shù)或負(fù)數(shù)?!癊xpires”頭標(biāo)的值將通過當(dāng)前系統(tǒng)時(shí)間加上設(shè)定time值來設(shè)定。time值還控制"Cache-Control"的值:負(fù)數(shù)表示no-cache正數(shù)或零表示max-age=time epoch:指定“Expires”的值為 1January,1970,00:00:01 GMTmax:指定“Expires”的值為31December203723:59:59GMT,"Cache-Control"的值為10年。-1:指定“Expires”的值為當(dāng)前服務(wù)器時(shí)間-1s,即永遠(yuǎn)過期。off:不修改“Expires”和"Cache-Control"的值

expires使用了特定的時(shí)間,并且要求服務(wù)器和客戶端的是中嚴(yán)格同步。
而Cache-Control是用max-age指令指定組件被緩存多久。
對(duì)于不支持http1.1的瀏覽器,還是需要expires來控制。所以最好能指定兩個(gè)響應(yīng)頭。但HTTP規(guī)范規(guī)定max-age指令將重寫expires頭。一般用于頁面變化不是很快的時(shí)候,如果緩存過期了,瀏覽器在重用它之前會(huì)首先確認(rèn)他是否有效,就是一個(gè)“條件GET請(qǐng)求”,如果有效,返回304狀態(tài)碼。expires通過Last-Modified響應(yīng)頭來確定。如圖:
第一次訪問:
請(qǐng)求:


返回:


第二次訪問:
請(qǐng)求:


返回:


這時(shí)返回的狀態(tài)碼是304,而在請(qǐng)求中比第一次多了If-Modified-Since頭,和原始服務(wù)器中的Last-Modified制作比較,所以實(shí)現(xiàn)瀏覽器緩存并判斷是否過期。
簡(jiǎn)單的說,Last-Modified 與If-Modified-Since 都是用于記錄頁面最后修改時(shí)間的 HTTP 頭信息,只是Last-Modified 是由服務(wù)器往客戶端發(fā)送的 HTTP 頭,而 If-Modified-Since則是由客戶端往服務(wù)器發(fā)送的頭,可以看到,再次請(qǐng)求本地存在的 cache 頁面時(shí),客戶端會(huì)通過 If-Modified-Since頭將先前服務(wù)器端發(fā)過來的 Last-Modified最后修改時(shí)間戳發(fā)送回去,這是為了讓服務(wù)器端進(jìn)行驗(yàn)證,通過這個(gè)時(shí)間戳判斷客戶端的頁面是否是最新的,如果不是最新的,則返回新的內(nèi)容,如果是最新的,則返回304告訴客戶端其本地cache的頁面是最新的,于是客戶端就可以直接從本地加載頁面了,這樣在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)就會(huì)大大減少,同時(shí)也減輕了服務(wù)器的負(fù)擔(dān)。

如果不想讓代理或?yàn)g覽器緩存,加no-cache參數(shù)或private參數(shù):
# expires 1d;
add_header Cache-Control no-cache;
add_header Cache-Control private;




etag:實(shí)體標(biāo)簽,是用來確認(rèn)web服務(wù)器和瀏覽器緩存有效性的一種機(jī)制。原始服務(wù)器使用ETag響應(yīng)頭來指定組件的ETag瀏覽器通過If-None-Match頭將ETag傳回原始服務(wù)器。如果匹配,返回304
如圖:
第一次訪問:
請(qǐng)求:


返回:


第二次請(qǐng)求:


返回:


依然返回的狀態(tài)碼是304,而在請(qǐng)求中比第一次多了If-None-Match頭。所以實(shí)現(xiàn)瀏覽器緩存。如果這個(gè)值對(duì)不上,則緩存過期。
ETags和If-None-Match是一種常用的判斷資源是否改變的方法。類似于Last-Modified和HTTP-If-Modified-Since。但是有所不同的是Last-Modified和HTTP-If-Modified-Since只判斷資源的最后修改時(shí)間,而ETags和If-None-Match可以是資源任何的任何屬性。
ETags和If-None-Match的工作原理是在HTTPResponse中添加ETags信息。當(dāng)客戶端再次請(qǐng)求該資源時(shí),將在HTTPRequest中加入If-None-Match信息(ETags的值)。如果服務(wù)器驗(yàn)證資源的ETags沒有改變(該資源沒有改變),將返回一個(gè)304狀態(tài);否則,服務(wù)器將返回200狀態(tài),并返回該資源和新的ETags。

IIS上的ETag格式需要修改。

另一篇文章講解的也非常清楚: http://www.dbjr.com.cn/article/33214.htm

相關(guān)文章

  • Nginx實(shí)現(xiàn)異步訪問mysql的配置方法

    Nginx實(shí)現(xiàn)異步訪問mysql的配置方法

    這篇文章主要介紹了Nginx實(shí)現(xiàn)異步訪問mysql的配置方法,本文先是講解了安裝配置方法,然后給出了使用方法,需要的朋友可以參考下
    2015-06-06
  • 使用nginx配置基于域名的虛擬主機(jī)實(shí)現(xiàn)​

    使用nginx配置基于域名的虛擬主機(jī)實(shí)現(xiàn)​

    這篇文章主要介紹了nginx配置基于域名的虛擬主機(jī)實(shí)現(xiàn)&#8203;,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Nginx 禁止IP訪問 只允許域名訪問

    Nginx 禁止IP訪問 只允許域名訪問

    今天要在Nginx上設(shè)置禁止通過IP訪問服務(wù)器,只能通過域名訪問,這樣做是為了避免別人把未備案的域名解析到自己的服務(wù)器IP而導(dǎo)致服務(wù)器被斷網(wǎng),從網(wǎng)絡(luò)上搜到以下解決方案
    2016-09-09
  • ConfigMap掛載與Subpath在Nginx容器中的應(yīng)用小結(jié)

    ConfigMap掛載與Subpath在Nginx容器中的應(yīng)用小結(jié)

    configmap可以通過ENV環(huán)境變量和文件兩種方式掛載到容器中,修改configmap后容器中對(duì)應(yīng)的ENV環(huán)境變量不會(huì)更新,將配置文件nginx.conf以configmap文件的方式掛載到容器中,本文介紹ConfigMap掛載與Subpath在Nginx容器中的應(yīng)用小結(jié),感興趣的朋友一起看看吧
    2024-03-03
  • Nginx部署https網(wǎng)站并配置地址重寫的步驟詳解

    Nginx部署https網(wǎng)站并配置地址重寫的步驟詳解

    今天小編就為大家分享一篇關(guān)于Nginx部署https網(wǎng)站并配置地址重寫的步驟詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • centos7編譯安裝nginx的方法步驟

    centos7編譯安裝nginx的方法步驟

    這篇文章主要介紹了centos7編譯安裝nginx的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 超級(jí)詳細(xì)的nginx負(fù)載均衡配置

    超級(jí)詳細(xì)的nginx負(fù)載均衡配置

    所謂負(fù)載均衡就是就是把大量的請(qǐng)求按照我們指定的方式均衡的分配給集群中的每臺(tái)服務(wù)器,從而不會(huì)產(chǎn)生集群中大量請(qǐng)求只請(qǐng)求某一臺(tái)服務(wù)器,從而使該服務(wù)器宕機(jī)的情況,這篇文章主要給大家介紹了關(guān)于nginx負(fù)載均衡配置的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式

    nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式

    這篇文章主要介紹了nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 關(guān)于Nginx配置ssl證書實(shí)現(xiàn)https安全訪問

    關(guān)于Nginx配置ssl證書實(shí)現(xiàn)https安全訪問

    這篇文章主要介紹了關(guān)于Nginx配置ssl證書實(shí)現(xiàn)https安全訪問,前題條件是擁有服務(wù)器與可以解析到該服務(wù)器的自己的域名,需要的朋友可以參考下
    2023-04-04
  • Nginx源碼研究之nginx限流模塊詳解

    Nginx源碼研究之nginx限流模塊詳解

    這篇文章主要介紹了Nginx源碼研究之nginx限流模塊詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09

最新評(píng)論