
一.摘要
這篇文章總結(jié)了如何為運用IIS保管的網(wǎng)站啟用Gzip緊縮, 然后削減頁面網(wǎng)絡(luò)傳輸巨細, 進步用戶顯示頁面的速度.
二.前言.
這篇文章的常識點是從互聯(lián)網(wǎng)收集收拾, 首要來源于中文wiki. 運用YSlow檢查網(wǎng)站啟用了哪些優(yōu)化時, Gzip是十分要害的一項. 發(fā)動Gip緊縮將馬到成功的削減頁面的網(wǎng)絡(luò)傳輸巨細.
三.HTTP緊縮概述
HTTP緊縮是在Web效勞器和瀏覽器間傳輸緊縮文本內(nèi)容的辦法。HTTP緊縮采用通用的緊縮算法如gzip等緊縮HTML、JavaScript或CSS文件。緊縮的最大優(yōu)點即是降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,然后進步客戶端瀏覽器的拜訪速度。當然,同時也會增加一點點效勞器的擔負。Gzip是比較常見的一種HTTP緊縮算法。
四.HTTP緊縮作業(yè)原理
Web效勞器處理HTTP緊縮的作業(yè)原理如下:
1.Web效勞器接收到瀏覽器的HTTP懇求后,檢查瀏覽器是不是支撐HTTP緊縮;
在用戶瀏覽器發(fā)送懇求的HTTP頭中, 帶有"Accept-Encoding: gzip, deflate"參數(shù)則表明支撐gzip和deflate兩種緊縮算法.
2.假如瀏覽器支撐HTTP緊縮,Web效勞器檢查懇求文件的后綴名;
靜態(tài)文件和動態(tài)文件后綴發(fā)動要所都需求在MetaBase.xml中設(shè)置.
靜態(tài)文件需求設(shè)置: HcFileExtensions Metabase Property (單擊跳轉(zhuǎn)到MSDN闡明)
動態(tài)文件需求設(shè)置: HcScriptFileExtensions Metabase Property (單擊跳轉(zhuǎn)到MSDN闡明)
3.假如懇求文件是HTML、CSS等靜態(tài)文件而且文件后綴啟用了緊縮,則Web效勞器到緊縮緩沖目錄中檢查是不是現(xiàn)已存在懇求文件的最新緊縮文件;
4.假如懇求文件的緊縮文件不存在,Web效勞器向瀏覽器回來未緊縮的懇求文件,并在緊縮緩沖目錄中存放懇求文件的緊縮文件;
5.假如懇求文件的最新緊縮文件現(xiàn)已存在,則直接回來懇求文件的緊縮文件;
6.假如懇求文件是ASPX等動態(tài)文件而且文件后綴啟用了緊縮,Web效勞器動態(tài)緊縮內(nèi)容并回來瀏覽器,緊縮內(nèi)容不存放到緊縮緩存目錄中。
五. 在IIS中啟用HTTP緊縮
IIS默許并不支撐HTTP緊縮,需求進行簡略的裝備
1.翻開Internet信息效勞(IIS)管理器,右擊"網(wǎng)站"->"特點",挑選"效勞"。在"HTTP緊縮"框中選中"緊縮應(yīng)用程序文件"和"緊縮靜態(tài)文件",按需求設(shè)置"暫時目錄"和"暫時目錄的最大約束";
2.提示: 經(jīng)實驗此過程在自己機器上沒有作用, 能夠疏忽.
在Internet信息效勞(IIS)管理器,右擊"Web效勞拓展"->"增加一個新的Web效勞拓展...",在"新建Web效勞拓展"框中輸入拓展名"HTTP Compression",增加"請求的文件"為C:\WINDOWS\system32\inetsrv\gzip.dll,其間Windows系統(tǒng)目錄根據(jù)您的安裝也許有所不同,選中"設(shè)置拓展狀況為答應(yīng)";
3.運用文本修正器翻開C:\Windows\System32\inetsrv\MetaBase.xml(主張先備份),
找到Location ="/LM/W3SVC/Filters/Compression/gzip用于設(shè)置gzip緊縮,
找到Location ="/LM/W3SVC/Filters/Compression/deflate"用于設(shè)置deflate緊縮.
上面兩個節(jié)點緊挨著.而且設(shè)置的特點一樣.
假如需求緊縮動態(tài)文件,則將HcDoDynamicCompression設(shè)置為"TRUE",并在HcScriptFileExtensions中增加您要緊縮的動態(tài)文件后綴名,如aspx;假如需求緊縮靜態(tài)文件,則將HcDoStaticCompression和HcDoOnDemandCompression設(shè)置為"TRUE",并在HcFileExtensions中增加您需求緊縮的靜態(tài)文件后綴名,如xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表明需求的緊縮率,數(shù)值在0-10, 默許為0.
HcDynamicCompressionLevel特點闡明:HcDynamicCompressionLevel Metabase Property
HcOnDemandCompLevel 特點闡明:HcOnDemandCompLevel Metabase Property
闡明: 這兩個特點值一般引薦設(shè)置為9, 具有最好性價比.但是在我的window server 2003上, 緊縮率無論如何設(shè)置, jQuery和jQuery UI兩個文件(58k/188k)緊縮后的巨細一直一樣.(20k/45k).

下面是我的實例:
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="true"
HcDynamicCompressionLevel="9"
HcFileExtensions="htm
html
txt
js
css
swf
xml"
HcOnDemandCompLevel="9"
HcPriority="1"
HcScriptFileExtensions="asp
aspx
dll
exe"
>HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="true"
HcDynamicCompressionLevel="9"
HcFileExtensions="htm
html
txt
js
css
swf
xml"
HcOnDemandCompLevel="9"
HcPriority="1"
HcScriptFileExtensions="asp
aspx
dll
exe"
>
4.修正結(jié)束后保留MetaBase.xml文件;假如文件無法保留,則也許IIS正在運用該文件。翻開"開端"->"管理工具"->"效勞",中止"IIS Admin Service"后,即可保留;
5.最終,重新發(fā)動IIS。能夠到HTTP緊縮測試網(wǎng)站驗證成果.以jQuery為例, 中心類庫和UI類庫初始巨細分別是57k和188k,緊縮后分別是20k和45k:
咱們經(jīng)過Http頭中的: Content-Encoding:gzip 特點判別回來后的數(shù)據(jù)現(xiàn)已啟用了gzip緊縮:
運用YSlow檢查, 當只發(fā)動靜態(tài)文件緊縮時, Gzip緊縮評級為B:
當同時發(fā)動了動態(tài)文件緊縮時, Gzip緊縮評級為A:
六.關(guān)鍵總結(jié)
1. 在修正MetaBase.xml文件時, 要中止"IIS Admin Service"效勞. 不然無法保留.
2.靜態(tài)緊縮和動態(tài)緊縮率最好設(shè)置為9.
3.上文的過程2, 即便不增加Web效勞拓展作用也是一樣的.
4.緊縮率設(shè)置對js文件不起作用, 緊縮后巨細老是一樣的.
5.圖像文件即便啟用了gzip緊縮巨細也沒有改變.
七. 總結(jié)
這篇文章總結(jié)了如安在IIS中啟用Gzip緊縮. 在半年前的項目中我為網(wǎng)站啟用了Gzip, 今天收拾此文首要為了收拾自己的常識以便今后忘記時溫習(xí). 別的經(jīng)檢查ChinaCache公司提供的CDN也都啟用了Gzip緊縮.
--cnblogs
如果喜歡記得關(guān)注,想看更多就上指尖繁華seo教程網(wǎng)www.bianyouyao.com