日期:2014-11-24 浏览次数:21528次

本文介绍的HTTP压缩方式,采用的是Windows系统设置的方式,优点是效率较高。

一. HTTP压缩概述

HTTP压缩是在Web服务器 和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。Gzip是比较常见的 一种HTTP压缩算法。

二. HTTP压缩工作原理

Web服务器处理HTTP压缩的工作原理如下:
Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。

三. IIS 6.0中配置HTTP Gzip压缩的步骤

过Windows2003系统设置的方式启用Gzip的突出优点就是效率较高,所以我们直接设置IIS让其支持Gzip压缩。启用Gzip 压缩步骤如下。
1、单击“开始”—“管理工具”—“Internet 信息服务(IIS)管理器”,打开IIS管理器;
2、在 "IIS 管理器" 中,打开 "网站 >属性" 对话框,切换到 "服务" 页卡,选中“压缩应用程序文件”和“压缩静态文件”,同时根据情况设置临时目录的最大容量,初期可以限制为1G左右。如图1所示:

 

3、返回Internet信息服务(IIS)管理器,右击“Web服务扩展”,选择“增加一个新的Web服务扩展(A)”,在“新建Web服务扩展”框中输入扩展名“Gzip”,添加“要求的文件”为C:\WINDOWS\system32\inetsrv\gzip.dll,其中 Windows系统目录根据您的安装可能有所不同,同时选中“设置扩展状态为允许”。如图2所示:
Windows2003服务器IIS启用Gzip压缩的设置方法
4、使用记事本等文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml,找到 "IIsCompressionScheme",按下述方法修改、保存。(建议修改前先做备份)
如果需要压缩动态文件,则将 HcDoDynamicCompression设置为"TRUE",并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx、php、jsp等。
如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为 "TRUE",并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如shtm、shtml、js、css、swf、mid、xml、mp3等静态文件类型。
 
例子:------------------------>>>>>>>>>>>>>>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt
js
css
xhtml
gif
jpg
png
xml
bmp
swf
mid
xml
mp3
mp4"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe
php
aspx"
>
</IIsCompressionScheme>
--------------------------------------------------->>>>>>>>>>>.
 
5、在运行中输入“net stop iisadmin /y”停止IIS服务,运行完成后保存Metabase.xml;
6、在运行中输入“iisreset”重启IIS服务。
至此,Windows2003服务器IIS启用Gzip 压缩完成。