Win2003+IIS 6.0下啟用壓縮技術精簡網站體積的方法
一.HTTP壓縮概述
HTTP壓縮是在Web服務器和瀏覽器間傳輸壓縮文本內容的方法。HTTP壓縮采用通用的壓縮算法如gzip等壓縮HTML、Java或 CSS文件。壓縮的最大好處就是降低了網絡傳輸的數據量,從而提高客戶端瀏覽器的訪問速度。當然,同時也會增加一點點服務器的負擔。Gzip是比較常見的 一種HTTP壓縮算法。
二.HTTP壓縮工作原理
Web服務器處理HTTP壓縮的工作原理如下:
1.Web服務器接收到瀏覽器的HTTP請求后,檢查瀏覽器是否支持HTTP壓縮;
在用戶瀏覽器發送請求的HTTP頭中, 帶有"Accept-Encoding: gzip, deflate"參數則表明支持gzip和deflate兩種壓縮算法.
2.如果瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的后綴名;
靜態文件和動態文件后綴啟動要所都需要在MetaBase.xml中設置.
靜態文件需要設置: HcFileExtensions Metabase Property (單擊跳轉到MSDN說明)
動態文件需要設置: HcFileExtensions Metabase Property (單擊跳轉到MSDN說明)
3.如果請求文件是HTML、CSS等靜態文件并且文件后綴啟用了壓縮,則Web服務器到壓縮緩沖目錄中檢查是否已經存在請求文件的最新壓縮文件;
4.如果請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,并在壓縮緩沖目錄中存放請求文件的壓縮文件;
5.如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;
6.如果請求文件是ASPX等動態文件并且文件后綴啟用了壓縮,Web服務器動態壓縮內容并返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。
三. 在IIS中啟用HTTP壓縮
IIS默認并不支持HTTP壓縮,需要進行簡單的配置
1.打開Internet信息服務(IIS)管理器,右擊"網站"->"屬性",選擇"服務"。在"HTTP壓縮"框中選中"壓縮應用程序文件"和"壓縮靜態文件",按需要設置"臨時目錄"和"臨時目錄的最大限制";
2.提醒: 經試驗此步驟在本人機器上沒有作用, 可以忽略.
在Internet信息服務(IIS)管理器,右擊"Web服務擴展"->"增加一個新的Web服務擴展...",在"新建Web服務擴展"框中輸 入擴展名"HTTP Compression",添加"要求的文件"為C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系統目 錄根據您的安裝可能有所不同,選中"設置擴展狀態為允許";
3.使用文本編輯器打開C:\Windows\System32\inetsrv\MetaBase.xml(建議先備份),
找到Location ="/LM/W3SVC/Filters/Compression/gzip用于設置gzip壓縮,
找到Location ="/LM/W3SVC/Filters/Compression/deflate"用于設置deflate壓縮.
上面兩個節點緊挨著.并且設置的屬性相同.
如果需要壓縮動態文件,則將HcDoDynamicCompression設置為"TRUE",并在HcFileExtensions中增加 您要壓縮的動態文件后綴名,如aspx;如果需要壓縮靜態文件,則將HcDoStaticCompression和 HcDoOnDemandCompression設置為"TRUE",并在HcFileExtensions中增加您需要壓縮的靜態文件后綴名,如 xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的壓縮率,數值在0-10, 默認為0.
四.要點總結
1. 在修改MetaBase.xml文件時, 要停止"IIS Admin Service"服務. 否則無法保存.
2.靜態壓縮和動態壓縮率最好設置為9.
3.上文的步驟2, 即使不添加Web服務擴展效果也是相同的.
4.壓縮率設置對js文件不起作用, 壓縮后大小總是相同的.
5.圖片文件即使啟用了gzip壓縮大小也沒有變化.
五. 總結
本文總結了如何在IIS中啟用Gzip壓縮. 在半年前的項目中我為網站啟用了Gzip, 今天整理此文主要為了整理自己的知識以便以后忘記時復習. 另外經查看ChinaCache公司提供的CDN也都啟用了Gzip壓縮.
詳細出處參考:http://www.jb51.net/article/19966.htm
關鍵字:服務器、網站、壓縮、Web
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解