一.摘要
這篇文章總結(jié)了如何為運(yùn)用IIS保管的網(wǎng)站啟用Gzip緊縮, 然后削減頁面網(wǎng)絡(luò)傳輸巨細(xì), 進(jìn)步用戶顯示頁面的速度.
二.前言.
這篇文章的常識點是從互聯(lián)網(wǎng)收集收拾, 首要來源于中文wiki. 運(yùn)用YSlow檢查網(wǎng)站啟用了哪些優(yōu)化時, Gzip是十分要害的一項. 發(fā)動Gip緊縮將馬到成功的削減頁面的網(wǎng)絡(luò)傳輸巨細(xì).
三.HTTP緊縮概述
HTTP緊縮是在Web效勞器和瀏覽器間傳輸緊縮文本內(nèi)容的辦法波俄。HTTP緊縮采用通用的緊縮算法如gzip等緊縮HTML、JavaScript或CSS文件。緊縮的最大優(yōu)點即是降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,然后進(jìn)步客戶端瀏覽器的拜訪速度。當(dāng)然溪椎,同時也會增加一點點效勞器的擔(dān)負(fù)。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緊縮胜蛉,需求進(jìn)行簡略的裝備
1.翻開Internet信息效勞(IIS)管理器挠进,右擊"網(wǎng)站"->"特點",挑選"效勞"誊册。在"HTTP緊縮"框中選中"緊縮應(yīng)用程序文件"和"緊縮靜態(tài)文件"领突,按需求設(shè)置"暫時目錄"和"暫時目錄的最大約束";
2.提示: 經(jīng)實驗此過程在自己機(jī)器上沒有作用, 能夠疏忽.
在Internet信息效勞(IIS)管理器案怯,右擊"Web效勞拓展"->"增加一個新的Web效勞拓展..."君旦,在"新建Web效勞拓展"框中輸入拓展名"HTTP Compression",增加"請求的文件"為C:\WINDOWS\system32\inetsrv\gzip.dll嘲碱,其間Windows系統(tǒng)目錄根據(jù)您的安裝也許有所不同金砍,選中"設(shè)置拓展?fàn)顩r為答應(yīng)";
3.運(yùn)用文本修正器翻開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)緊縮后的巨細(xì)一直一樣.(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正在運(yùn)用該文件。翻開"開端"->"管理工具"->"效勞"塘匣,中止"IIS Admin Service"后脓豪,即可保留;
5.最終忌卤,重新發(fā)動IIS笤闯。能夠到HTTP緊縮測試網(wǎng)站驗證成果.以jQuery為例, 中心類庫和UI類庫初始巨細(xì)分別是57k和188k,緊縮后分別是20k和45k:
咱們經(jīng)過Http頭中的: Content-Encoding:gzip 特點判別回來后的數(shù)據(jù)現(xiàn)已啟用了gzip緊縮:
運(yùn)用YSlow檢查, 當(dāng)只發(fā)動靜態(tài)文件緊縮時, Gzip緊縮評級為B:
當(dāng)同時發(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文件不起作用, 緊縮后巨細(xì)老是一樣的.
5.圖像文件即便啟用了gzip緊縮巨細(xì)也沒有改變.
七. 總結(jié)
這篇文章總結(jié)了如安在IIS中啟用Gzip緊縮. 在半年前的項目中我為網(wǎng)站啟用了Gzip, 今天收拾此文首要為了收拾自己的常識以便今后忘記時溫習(xí). 別的經(jīng)檢查ChinaCache公司提供的CDN也都啟用了Gzip緊縮.
--cnblogs
如果喜歡記得關(guān)注,想看更多就上指尖繁華seo教程網(wǎng)www.bianyouyao.com