[轉]IIS7.5 添加expires頭 提高性能


本文轉自:http://niutuku.com/tech/www/271454.shtml

 

對於頁面中不經常變化的靜態內容通過指定expires頭,來進行瀏覽器端的緩存,減少每次訪問時的請求。

 

原理:對於頁面中不經常變化的靜態內容通過指定expires頭,來進行瀏覽器端的緩存,減少每次訪問時的請求。

實現:

1、IIS下的實現參考

為靜態文件(js,css,image)設置客戶端緩存是前端優化的重要法則之一,通過IIS為靜態文件設置過期頭(Expires headers)很方便,

1.打開IIS管理器;

2.點擊要設置的站點,在功能視圖中雙擊HTTP響應標頭image

 

3.然后點擊image,打開對話框image

 

 

 

但是這樣操作,web的整個站的所有的靜態文件的緩存時間都一樣,如果我們希望為不同的靜態文件添加不同的緩存時間,比如有些文件很久不改變希望緩存時間長些,有些希望緩存時間短些。一直我以為IIS不可以做到,需要編程的方式管理,在google上搜索也無果,最后在stackoverflow提問(iis only Add Expires headers to images),很長時間沒人回答(悲傷),不過最終還是有人解答了。

操作起來還是很簡單,下面以添加某一個JS文件的緩存時間為例:

1. 在IIS管理器下點擊該文件的文件夾並切換到內容視圖

image

image

2. 選中要設置的js文件,如上圖的jquery-1.3.2.js,右鍵切換到功能視圖,這時看到的IIS管理台內容是

image

雙擊上圖的HTTP響應標頭就可以像為整個站點設置過期時間一樣的操作。

 

 

 

上面的操作最終還是生成web.config的配置,經過上面的設置你會發現在Script文件夾下生成了一個web.config配置文件,打開發現內容如下

image

這樣就明白了通過上面在IIS管理器的“繁瑣”的界面操作可以通過簡單的web.config中配置即可,

比如我要我整個Script文件夾設置統一的過期日期,只用添加一個location節即可

 

2、java的實現

mod_expires Apache 模塊,具體還沒研究如何用

win2000+apache2.0.54+tomcat5.0.28 現在想在某些目錄上設置網頁過期時間。 當寫法是在httpd.conf的后面直接加 ExpiresActive  on ExpiresDefault  "access  plus  50  hour " 時,網站全部網頁和圖片等內容起作用。
當我想只配置某個特定的目錄起作用時。寫法改為: <Directory  "D:/Tomcat/webapps/ROOT ">       Options  Indexes  FollowSymLinks       AllowOverride  None       Order  allow,deny       Allow  from  all       ExpiresActive  on       ExpiresDefault  "access  plus  50  hour " < /Directory>

結論:

通過對指定不同的expires頭來達到緩存查找的目的,如果靜態內容有變化,可通過對應文件名稱改變的方式來進行督促瀏覽器更新緩存。最好采用名稱加版本號的方式對靜態文件進行命名。

所針對的緩存對象為不經常改變的任何靜態內容,不只是局限於圖片,像css、js、flash都可以。

 

http1.1引入了cache-control來解決expires頭需要客戶端和服務器端時鍾嚴格同步的問題。

cache-control通過max-age(以秒為單位)來指定多長時間以后過期。

-


免責聲明!

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



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