一.摘要
这篇文章总结了如何为运用IIS保管的网站启用Gzip紧缩, 然后削减页面网络传输巨细, 进步用户显示页面的速度.
二.前言.
这篇文章的常识点是从互联网收集收拾, 首要来源于中文wiki. 运用YSlow检查网站启用了哪些优化时, Gzip是十分要害的一项. 发动Gip紧缩将马到成功的削减页面的网络传输巨细.
三.HTTP紧缩概述
HTTP紧缩是在Web效劳器和浏览器间传输紧缩文本内容的办法。HTTP紧缩采用通用的紧缩算法如gzip等紧缩HTML、JavaScript或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阐明)
动态文件需求设置: HcScriptFileExtensions 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",并在HcScriptFileExtensions中增加您要紧缩的动态文件后缀名,如aspx;假如需求紧缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为"TRUE",并在HcFileExtensions中增加您需求紧缩的静态文件后缀名,如xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表明需求的紧缩率,数值在0-10, 默许为0.
HcDynamicCompressionLevel特点阐明:HcDynamicCompressionLevel Metabase Property
HcOnDemandCompLevel 特点阐明:HcOnDemandCompLevel Metabase Property
阐明: 这两个特点值一般引荐设置为9, 具有最好性价比.但是在我的window server 2003上, 紧缩率无论如何设置, 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.修正结束后保留MetaBase.xml文件;假如文件无法保留,则也许IIS正在运用该文件。翻开"开端"->"管理工具"->"效劳",中止"IIS Admin Service"后,即可保留;
5.最终,重新发动IIS。能够到HTTP紧缩测试网站验证成果.以jQuery为例, 中心类库和UI类库初始巨细分别是57k和188k,紧缩后分别是20k和45k:
咱们经过Http头中的: Content-Encoding:gzip 特点判别回来后的数据现已启用了gzip紧缩:
运用YSlow检查, 当只发动静态文件紧缩时, Gzip紧缩评级为B:
当同时发动了动态文件紧缩时, Gzip紧缩评级为A:
六.关键总结
1. 在修正MetaBase.xml文件时, 要中止"IIS Admin Service"效劳. 不然无法保留.
2.静态紧缩和动态紧缩率最好设置为9.
3.上文的过程2, 即便不增加Web效劳拓展作用也是一样的.
4.紧缩率设置对js文件不起作用, 紧缩后巨细老是一样的.
5.图像文件即便启用了gzip紧缩巨细也没有改变.
七. 总结
这篇文章总结了如安在IIS中启用Gzip紧缩. 在半年前的项目中我为网站启用了Gzip, 今天收拾此文首要为了收拾自己的常识以便今后忘记时温习. 别的经检查ChinaCache公司提供的CDN也都启用了Gzip紧缩.
--cnblogs
如果喜欢记得关注,想看更多就上指尖繁华seo教程网www.bianyouyao.com