nginx實戰2---瀏覽器設置緩存

對常見格式的圖片文件等在瀏覽器本地緩存,對於css,js等文件在瀏覽器本地緩存.

語法:expires [time|epoch|max|offcss

默認值:off瀏覽器

expires指令控制HTTP應答中的「Expires」和「Cache-Control」Header頭部信息,啓動控制頁面緩存的做用緩存

time參數---》time:能夠使用正數或負數服務器

「Expires」頭標的值將經過當前系統時間加上設定time值來設定。網絡

epoch:--->epoch:指定「Expires」的值爲 1January,1970,00:00:01 GMT網站

max:------>max:指定「Expires」的值爲31December2037 23:59:59GMT,""Cache-Control"的值爲10年。-1:指定「Expires」的值爲當前服務器時間減去1s,即永遠過時。spa

off:--------->off:不修改「Expires」和"Cache-Control"的值.net

Cache-Control是用max-age指令指定組件被緩存多久。(在瀏覽器header頭部有)代理

負數參數:表示Cache-Control:no-cachecode

整數或者零:表示Cache-Control:max-age=' '爲您設定的時間秒數。

另外:

若是不想讓代理或瀏覽器緩存,加no-cache參數或private參數:
# expires 1d;
add_header Cache-Control no-cache;
add_header Cache-Control private;

 如何查看,如何驗證:能夠經過訪問別人的網站,看看別人有沒有作緩存

當我訪問一個網站的時候,看狀態碼全是200

點擊開查看關鍵參數:

 

第二次去訪問:

變成了304

查看:

 

這時返回的狀態碼是304,而在請求中比第一次多了If-Modified-Since頭,和原始服務器中的Last-Modified製做比較,因此實現瀏覽器緩存並判斷是否過時。

簡單的說,Last-Modified 與If-Modified-Since 都是用於記錄頁面最後修改時間的 HTTP 頭信息,

只是Last-Modified 是由服務器往客戶端發送的 HTTP 頭,

而 If-Modified-Since則是由客戶端往服務器發送的頭,

能夠看到,再次請求本地存在的 cache 頁面時,客戶端會經過 If-Modified-Since頭將先前服務器端發過來的 Last-Modified最後修改時間戳發送回去,這是爲了讓服務器端進行驗證,經過這個時間戳判斷客戶端的頁面是不是最新的,若是不是最新的,則返回新的內容,

若是是最新的,則返回304告訴客戶端其本地cache的頁面是最新的,

因而客戶端就能夠直接從本地加載頁面了,這樣在網絡上傳輸的數據就會大大減小,同時也減輕了服務器的負擔。

簡單配置以下:

 1 知識寫了location   
 2 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
 3         {
 4                 expires      30d;
 5                 access_log off;
 6         }
 7 
 8         location ~ .*\.(js|css)$
 9         {
10                 expires      12h;
11                 access_log off;
12         }

 參考:http://www.jb51.net/article/33213.htm

相關文章
相關標籤/搜索