在IIS上启用Gzip压缩 (HTTP压缩)第1/3页

 2022-11-04    296  

一.摘要 
       本文总结了如何为使用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压缩”框中选中”压缩应用程序文件”和”压缩静态文件”,按需要设置”临时目录”和”临时目录的最大限制”;
 

  • IIS
  • Gzip
  • 压缩

相关文章

  • iis伪静态中文url出现乱码的解决办法

    iis伪静态中文url出现乱码的解决办法

    这篇文章主要介绍了iis伪静态中文url出现乱码的解决办法,需要的朋友可以参考下 2017-05-05

  • win7和win2008 r2下配置IIS7(ASP.net运行环境)

    win7和win2008 r2下配置IIS7(ASP.net运行环境)

    这篇文章主要介绍了win7和win2008 r2下配置IIS7(ASP.net运行环境) ,需要的朋友可以参考下 2014-12-12

  • 检查域名MX PTR(反向解析)记录的处理方法

    检查域名MX PTR(反向解析)记录的处理方法

    检查域名MX PTR(反向解析)记录的处理方法… 2007-10-10

  • WIN10下的JDK安装与配置环境变量的过程(详细版)

    WIN10下的JDK安装与配置环境变量的过程(详细版)

    这篇文章主要介绍了WIN10下的JDK安装与配置环境变量的常见问题分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 2020-06-06

  • Windows 2012/IIS8多网站用相同端口部署多张证书(SNI)

    Windows 2012/IIS8多网站用相同端口部署多张证书(SNI)

    Windows Server 2012 中有一项新增的功能 —— 服务器名称标识符(SNI),这个功能可以简化管理并改善SSL的可扩展能力。 2018-03-03

  • windows下mysql双向同步备份实现方法

    windows下mysql双向同步备份实现方法

    windows下mysql双向同步备份实现方法,对于网站同步镜像是很必要的。 2010-03-03

  • win7下IIS的安装和配置 图文教程

    win7下IIS的安装和配置 图文教程

    win7下IIS的安装和配置 图文教程,需要的朋友可以参考下 2012-02-02

  • Windows Server 2008 R2常规安全设置及基本安全策略

    Windows Server 2008 R2常规安全设置及基本安全策略

    这篇文章主要介绍了Windows Web Server 2008 R2服务器简单安全设置,需要的朋友可以参考下 2015-07-07

  • Windows服务器上lsass.exe进程CPU使用率异常问题排查方法

    Windows服务器上lsass.exe进程CPU使用率异常问题排查方法

    这篇文章主要介绍了Windows服务器上lsass.exe进程CPU使用率异常问题排查方法,一般这个情况是发起了对外攻击造成的,也就是你的服务器可能已经沦为肉机,需要的朋友可以参考下 2014-08-08

  • WEB 专用服务器的安全设置总结

    WEB 专用服务器的安全设置总结

    web服务器常见的安全设置,大家可以根据自己的情况进行设置,最后先在自己的电脑上做实验,最好用虚拟主机管理软件,有的下载。 2009-04-04

最新评论

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).

下面是我的实例:
复制代码 代码如下:


<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate" 
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" 
> 
</IIsCompressionScheme> 
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip" 
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" 
> 
</IIsCompressionScheme>

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: 在IIS上启用Gzip压缩
六.要点总结
1. 在修改MetaBase.xml文件时, 要停止”IIS Admin Service”服务. 否则无法保存.
2.静态压缩和动态压缩率最好设置为9.
3.上文的步骤2, 即使不添加Web服务扩展效果也是相同的.
4.压缩率设置对js文件不起作用, 压缩后大小总是相同的.
5.图片文件即使启用了gzip压缩大小也没有变化.

七. 总结
本文总结了如何在IIS中启用Gzip压缩. 在半年前的项目中我为网站启用了Gzip, 今天整理此文主要为了整理自己的知识以便以后忘记时复习. 另外经查看ChinaCache公司提供的CDN也都启用了Gzip压缩.

以上所述是小编给大家介绍的在IIS上启用Gzip压缩 (HTTP压缩)第1/3页,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

原文链接:https://77isp.com/post/11687.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。