当前位置:首页 > 学习笔记

在IIS上启用Gzip压缩(HTTP压缩)

duole14年前 (2012-06-17)学习笔记3139
摘要:一.摘要本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 二.前言.本文的知识点是从互联网收集整理, 主要来源于中文wiki. 使用YSlow检测网站启用了哪些优化时, Gzip是十分关键的一项. 启动Gip压缩将立竿见影的减少…

一.摘要

本文总结了如何为使用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中设置.
静态文件需要设置: image

2.提醒: 经试验此步骤在本人机器上没有作用, 可以忽略.
在Internet信息服务(IIS)管理器,右击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩展名"HTTP Compression",添加"要求的文件"为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中"设置扩展状态为允许";
image

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:
image
我们通过Http头中的: Content-Encoding:gzip 属性判断返回后的数据已经启用了gzip压缩:
image
使用YSlow检测, 当只启动静态文件压缩时, Gzip压缩评级为B:
image
当同时启动了动态文件压缩时, Gzip压缩评级为A:
image

六.要点总结

1. 在修改MetaBase.xml文件时, 要停止"IIS Admin Service"服务. 否则无法保存.

2.静态压缩和动态压缩率最好设置为9.

3.上文的步骤2, 即使不添加Web服务扩展效果也是相同的.

4.压缩率设置对js文件不起作用, 压缩后大小总是相同的.

5.图片文件即使启用了gzip压缩大小也没有变化.

 

七. 总结

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

作者:张子秋
出处:http://www.cnblogs.com/zhangziqiu/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利

扫描二维码推送至手机访问。

版权声明:本文由多乐博客发布,如需转载请注明出处。

本文链接:https://duole.org/learn-note/ZaiIISShangQiYongGzipYaSuo-HTTPYaSuo

标签: 汉字技巧
分享给朋友:

“在IIS上启用Gzip压缩(HTTP压缩)” 的相关文章

VPSMate安装及错误解决办法

VPSMate安装及错误解决办法

安装VPSMateVPSMate是一个 Linux 服务器 WEB 管理面板 有以下优点 快速在线安装、小巧且节省资源 当前支持 CentOS/Redhat 5.4+、6.x 基于发行版软件源的软件管理机制 轻松构建 Linux + Nginx + MySQL + PHP 环…

IIS 7.5 配置伪静态

IIS 7.5 配置伪静态

  之前在IIS 6.0 配置过伪静态:httpHandler实现.Net无后缀名Web访问。现在服务器硬件升级了,操作系统也升级成了Windows Server 2008,好吧。我们也来设置下IIS 7.5的伪静态: …

解决PHPManagerForIIS 在Windows10(IIS10)安装问题

解决PHPManagerForIIS 在Windows10(IIS10)安装问题

PHPManagerForIIS 是微软推出的在IIS平台下管理PHP扩展的工具,使用它可以方便在IIS中添加PHP扩展支持…

解决IIS7、IIS7.5应用程序池回收假死的方法

解决IIS7、IIS7.5应用程序池回收假死的方法

˂strong style="padding: 0px; ma…

汉字笔顺规则+笔画笔顺易错字集锦,难得这么全,不收藏可惜了!

汉字笔顺规则+笔画笔顺易错字集锦,难得这么全,不收藏可惜了!

孩子写字时如果不按笔画顺序,容易写错别字,字形结构难看。尤其是容易写错别字这个问题,到了高年级就更为严重。由于低年级的识字基础没打扎实,想要改变这种错误的书写方法需要花费大量的精力,甚至有些孩子的书写习惯无法改变。再加上高年级的识字量增加,对于孩子独立识字的要求也增加,识字基础不实的孩子会明显感到吃…

一键备份脚本backup.sh

一键备份脚本backup.sh

做网站最重要的是什么?数据!数据,是网站之本,备份,是每一个站长都应该重视的事情。但同时,备份也是一件繁琐和重复的事情。所以,这些事情,肯定能做到自动化的。下面来介绍一下这个一键备份脚本 backup.sh。总结一下 backup.sh 特点:1、支持 MySQL/MariaDB/Percona 的…