国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > IIS > 正文

在IIS上啟用Gzip壓縮(HTTP壓縮)

2024-08-29 03:09:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一.摘要

本文總結(jié)了如何為使用IIS托管的網(wǎng)站啟用Gzip壓縮, 從而減少網(wǎng)頁(yè)網(wǎng)絡(luò)傳輸大小, 提高用戶顯示頁(yè)面的速度.

 

二.前言.

本文的知識(shí)點(diǎn)是從互聯(lián)網(wǎng)收集整理, 主要來(lái)源于中文wiki. 使用YSlow檢測(cè)網(wǎng)站啟用了哪些優(yōu)化時(shí), Gzip是十分關(guān)鍵的一項(xiàng). 啟動(dòng)Gip壓縮將立竿見(jiàn)影的減少頁(yè)面的網(wǎng)絡(luò)傳輸大小.

 

三.HTTP壓縮概述

HTTP 壓縮是在Web服務(wù)器和瀏覽器間傳輸壓縮文本內(nèi)容的方法。HTTP壓縮采用通用的壓縮算法如gzip等壓縮HTML、JavaScript或CSS文件。壓縮的最大好處就是降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,從而提高客戶端瀏覽器的訪問(wèn)速度。當(dāng)然,同時(shí)也會(huì)增加一點(diǎn)點(diǎn)服務(wù)器的負(fù)擔(dān)。Gzip是比較常見(jiàn)的一種HTTP 壓縮算法。

 

四.HTTP壓縮工作原理

Web服務(wù)器處理HTTP壓縮的工作原理如下:

1.Web服務(wù)器接收到瀏覽器的HTTP請(qǐng)求后,檢查瀏覽器是否支持HTTP壓縮;
在用戶瀏覽器發(fā)送請(qǐng)求的HTTP頭中, 帶有"Accept-Encoding: gzip, deflate"參數(shù)則表明支持gzip和deflate兩種壓縮算法.

2.如果瀏覽器支持HTTP壓縮,Web服務(wù)器檢查請(qǐng)求文件的后綴名;
靜態(tài)文件和動(dòng)態(tài)文件后綴啟動(dòng)要所都需要在MetaBase.xml中設(shè)置.
靜態(tài)文件需要設(shè)置: HcFileExtensions Metabase Property (單擊跳轉(zhuǎn)到MSDN說(shuō)明)
動(dòng)態(tài)文件需要設(shè)置: HcScriptFileExtensions Metabase Property (單擊跳轉(zhuǎn)到MSDN說(shuō)明)

3.如果請(qǐng)求文件是HTML、CSS等靜態(tài)文件并且文件后綴啟用了壓縮,則Web服務(wù)器到壓縮緩沖目錄中檢查是否已經(jīng)存在請(qǐng)求文件的最新壓縮文件;

4.如果請(qǐng)求文件的壓縮文件不存在,Web服務(wù)器向?yàn)g覽器返回未壓縮的請(qǐng)求文件,并在壓縮緩沖目錄中存放請(qǐng)求文件的壓縮文件;

5.如果請(qǐng)求文件的最新壓縮文件已經(jīng)存在,則直接返回請(qǐng)求文件的壓縮文件;

6.如果請(qǐng)求文件是ASPX等動(dòng)態(tài)文件并且文件后綴啟用了壓縮,Web服務(wù)器動(dòng)態(tài)壓縮內(nèi)容并返回瀏覽器,壓縮內(nèi)容不存放到壓縮緩存目錄中。

 

五. 在IIS中啟用HTTP壓縮

IIS默認(rèn)并不支持HTTP壓縮,需要進(jìn)行簡(jiǎn)單的配置

1.打開(kāi)Internet信息服務(wù)(IIS)管理器,右擊"網(wǎng)站"->"屬性",選擇"服務(wù)"。在"HTTP壓縮"框中選中"壓縮應(yīng)用程序文件"和"壓縮靜態(tài)文件",按需要設(shè)置"臨時(shí)目錄"和"臨時(shí)目錄的最大限制";
image

2.提醒: 經(jīng)試驗(yàn)此步驟在本人機(jī)器上沒(méi)有作用, 可以忽略.
在 Internet信息服務(wù)(IIS)管理器,右擊"Web服務(wù)擴(kuò)展"->"增加一個(gè)新的Web服務(wù)擴(kuò)展...",在"新建Web服務(wù)擴(kuò)展"框中輸入擴(kuò)展名"HTTP Compression",添加"要求的文件"為C:/WINDOWS/system32/inetsrv/gzip.dll,其中Windows系統(tǒng)目錄根據(jù)您的安裝可能有所不同,選中"設(shè)置擴(kuò)展?fàn)顟B(tài)為允許";
image

3.使用文本編輯器打開(kāi)C:/Windows/System32/inetsrv/MetaBase.xml(建議先備份),
找到Location ="/LM/W3SVC/Filters/Compression/gzip用于設(shè)置gzip壓縮,
找到Location ="/LM/W3SVC/Filters/Compression/deflate"用于設(shè)置deflate壓縮.
上面兩個(gè)節(jié)點(diǎn)緊挨著.并且設(shè)置的屬性相同.

如果需要壓縮動(dòng)態(tài)文件,則將HcDoDynamicCompression設(shè)置為"TRUE",并在HcScriptFileExtensions中增加您要壓縮的動(dòng)態(tài)文件后綴名,如aspx;如果需要壓縮靜態(tài)文件,則將HcDoStaticCompression和 HcDoOnDemandCompression設(shè)置為"TRUE",并在HcFileExtensions中增加您需要壓縮的靜態(tài)文件后綴名,如 xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的壓縮率,數(shù)值在0-10, 默認(rèn)為0.
HcDynamicCompressionLevel屬性說(shuō)明:HcDynamicCompressionLevel Metabase Property
HcOnDemandCompLevel 屬性說(shuō)明:HcOnDemandCompLevel Metabase Property

說(shuō)明: 這兩個(gè)屬性值一般推薦設(shè)置為9, 具有最佳性價(jià)比.但是在我的window server 2003上, 壓縮率無(wú)論如何設(shè)置, jQuery和jQuery UI兩個(gè)文件(58k/188k)壓縮后的大小一直相同.(20k/45k).

下面是我的實(shí)例:

 

 

Xml代碼
  1. <IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/deflate"  
  2.         HcCompressionDll="%windir%/system32/inetsrv/gzip.dll"  
  3.         HcCreateFlags="0"  
  4.         HcDoDynamicCompression="TRUE"  
  5.         HcDoOnDemandCompression="TRUE"  
  6.         HcDoStaticCompression="true"  
  7.         HcDynamicCompressionLevel="9"  
  8.         HcFileExtensions="htm   
  9.                       html   
  10.                       txt   
  11.                       js   
  12.                       css   
  13.                       swf   
  14.                       xml"   
  15.         HcOnDemandCompLevel="9"  
  16.         HcPriority="1"  
  17.         HcScriptFileExtensions="asp   
  18.              aspx   
  19.              dll   
  20.              exe"   
  21.     >  
  22. </IIsCompressionScheme>  
  23. <IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/gzip"  
  24.         HcCompressionDll="%windir%/system32/inetsrv/gzip.dll"  
  25.         HcCreateFlags="1"  
  26.         HcDoDynamicCompression="TRUE"  
  27.         HcDoOnDemandCompression="TRUE"  
  28.         HcDoStaticCompression="true"  
  29.         HcDynamicCompressionLevel="9"  
  30.         HcFileExtensions="htm   
  31.                       html   
  32.                       txt   
  33.                       js   
  34.                       css   
  35.                       swf   
  36.                       xml"   
  37.         HcOnDemandCompLevel="9"  
  38.         HcPriority="1"  
  39.         HcScriptFileExtensions="asp   
  40.              aspx   
  41.              dll   
  42.              exe"   
  43.     >  
  44. </IIsCompressionScheme>  

 

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

 

4.編輯完畢后保存MetaBase.xml文件;如果文件無(wú)法保存,則可能IIS正在使用該文件。打開(kāi)"開(kāi)始"->"管理工具"->"服務(wù)",停止"IIS Admin Service"后,即可保存;

 

5.最后,重新啟動(dòng)IIS。可以到HTTP壓縮測(cè)試網(wǎng)站驗(yàn)證結(jié)果.以jQuery為例, 核心類(lèi)庫(kù)和UI類(lèi)庫(kù)原始大小分別是57k和188k,壓縮后分別是20k和45k:
image
我們通過(guò)Http頭中的: Content-Encoding:gzip 屬性判斷返回后的數(shù)據(jù)已經(jīng)啟用了gzip壓縮:
image
使用YSlow檢測(cè), 當(dāng)只啟動(dòng)靜態(tài)文件壓縮時(shí), Gzip壓縮評(píng)級(jí)為B:
image
當(dāng)同時(shí)啟動(dòng)了動(dòng)態(tài)文件壓縮時(shí), Gzip壓縮評(píng)級(jí)為A:
image

六.要點(diǎn)總結(jié)

1. 在修改MetaBase.xml文件時(shí), 要停止"IIS Admin Service"服務(wù). 否則無(wú)法保存.

2.靜態(tài)壓縮和動(dòng)態(tài)壓縮率最好設(shè)置為9.

3.上文的步驟2, 即使不添加Web服務(wù)擴(kuò)展效果也是相同的.

4.壓縮率設(shè)置對(duì)js文件不起作用, 壓縮后大小總是相同的.

5.圖片文件即使啟用了gzip壓縮大小也沒(méi)有變化.

 

七. 總結(jié)

本文總結(jié)了如何在IIS中啟用Gzip壓縮. 在半年前的項(xiàng)目中我為網(wǎng)站啟用了Gzip, 今天整理此文主要為了整理自己的知識(shí)以便以后忘記時(shí)復(fù)習(xí). 另外經(jīng)查看ChinaCache公司提供的CDN也都啟用了Gzip壓縮.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 花莲县| 漠河县| 县级市| 贡嘎县| 瑞金市| 肇源县| 南漳县| 土默特左旗| 交城县| 庆云县| 云南省| 陇西县| 涞源县| 清丰县| 肇庆市| 叙永县| 美姑县| 崇州市| 龙山县| 修水县| 汾阳市| 慈利县| 北宁市| 临沧市| 东乌珠穆沁旗| 阳原县| 海伦市| 叙永县| 阿拉尔市| 丰顺县| 义马市| 万安县| 东兰县| 武隆县| 独山县| 仙桃市| 大同县| 蕲春县| 塔城市| 肇东市| 大石桥市|