45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:压缩网站的方法技巧

压缩网站的方法技巧

2016-09-09 11:55:30 来源:www.45fan.com 【

压缩网站的方法技巧

??IT部门都想减少其网站的运行成本,毫无疑问会考虑减少带宽使用量。利用目前的网站压缩技术能达到90%的压缩比率,平均带宽节省2——3倍。然而执行中会受到浏览器和服务器里现有bugs的影响。本文将介绍如何成功地压缩HTML的流量,从而节省每月带宽的支出。
??一、网站压缩的原理
??IE4.0以上和Netscape 3.0以上的版本都有对WEB服务器传送来的压缩文件解压缩的功能,这个解压缩的特性直接建立在浏览器中了,不需要插件,并且默认就是激活的。IE向服务器发送“Accept-Encoding: gzip, deflate”标头,Netscape发送“Accept-Encoding: deflate”标头,以此表明它们能解压缩的压缩类型。
??“deflate”是表明已压缩页面的一种数据格式,而非一种压缩技术。不同的压缩技术有不同的压缩量,但一般都以deflate格式输出。Gzip是传输时打包压缩页面的一种格式,该格式首先是传输10字节的标头,接着是已压缩的页面,最后是2字节的校验和、2字节指明原始文件的大小(见图1)。任何Gzip文件的前两个字节都是一样的,第三个字节是指明压缩的格式(0x08表示 deflate格式)。

压缩网站的方法技巧

图1:Gzip格式

??当WEB服务器处理带有“Accept-Encoding:”标头的请求时,它要选择是送一个已压缩的页面或是一个标准的未压缩的页面。如果决定是回送已压缩的页面,它同时回送“Content-Encoded:”标头,说明编码的类型,如“Content-Encoded: gzip”(见图2)。浏览器将根据该标头决定在向浏览者呈现页面前是否要解压缩。

压缩网站的方法技巧

图2:被压缩的HTTP请求/响应

??
??二、WEB服务器压缩工作量
??服务器在压缩页面时有两个截然不同的情况:针对静态页面,页面可以提前压缩,并服务于多个请求。因为压缩每一个页面花费的时间大略是100 – 1000毫秒(取决于页文件的大小和压缩的质量),所以提前将静态页面压缩好以服务于多个请求,既节省CPU资源也能快速响应。对于动态页面如ASP、CFP等要难一些,不得不在对每一个请求响应时才压缩,因为每一个请求的结果完全不一样。
??三、IIS5.0 的压缩功能
I??IS5.0可以压缩动态和静态两种页面,默认的压缩选项是关闭的,为了打开它按以下步骤操作:
1、 打开IIS Manager
2、 找到Computer Node
3、 右击,选择Properties
4、 点击Master Properties的Edit按扭
5、 选择Service
6、 在其底部有一个HTTP Compression部分
7、 激活“Compress Application Files”,以使得ASP或CFP被压缩
8、 激活“Compress Static Files”,以压缩静态页面

压缩网站的方法技巧

图3:建立IIS压缩功能

??IIS5.0执行其压缩功能是通过ISAPI过滤器(安装在C:/WINNT/System32/inetsrv/compfilt.dll)来完成,也意味着本机上所有的网站都要压缩。如果图3中的“HTTP Compression”是灰颜色的,可能是系统缺少压缩过滤器。
??默认状态下,IIS5.0压缩功能只压缩扩展名为“htm”、“html”和“txt”的文件,因为这些文件的压缩比最大。当然,也可以让IIS压缩其他文件:
1、 打开命令提示(Command Prompt)窗
2、 改变当前目录到/InetPub/AdminScripts文件夹
3、 输入系列命令:
CSCRIPT.EXE ADSUTIL.VBS SET
W3Svc/Filters/Compression/GZIP/HcFileExtensions "htm" "html" "txt" "doc" "ppt" "xls"
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "htm" "html" "txt" "doc" "ppt" "xls"
4、 执行IISRESET.EXE
5、 关闭命令提示窗
??当配置了静态压缩功能后,IIS过滤器就将所有已压缩的文件放入一个临时的地方,默认在:C:/WINNT/IIS Temporary Compressed Files,这些文件被多个请求重复使用,直到原始文件有改变。然而默认的临时存储空间大小是不加限制的,建议还是设置一个合理的值。
??四、网站压缩目前存在的问题
??IE5.5和IE6.0都有一个有关解压缩的bug影响用户浏览压缩页面,这个bug的有关资料查阅 Microsoft knowledge Base articles的Q312496(针对 IE 6.0)和 Q313712(针对IE 5.5)。因为IE不会将服务器返回的文件在送到如Adobe Photoshop这样的插件之前解压缩,那么Adobe Photoshop在接收到一个压缩文件时,有时会使得IE死掉。针对该问题,微软提供了一个客户端补丁,请参考微软产品支持与参考Q313712。
??即使微软已经认识到这个问题并发布了一个补丁,但是成效不大,许许多多的人还是在运行有问题的浏览器,而不愿意安装补丁,最好是微软能发布一个服务器端的补叮如果服务器以不同方式送回HTTP响应标头,浏览器插件就不会收到已压缩的数据,浏览器就能成功解压缩并呈现页面了。但目前还没有IIS5.0压缩过滤器的补叮
??但是有一些公司发布了其他的压缩过滤器,这些压缩过滤器有更多的特点并能避开IE的问题。Xcache( http://www.xcache.com)就是其中之一,它能应用到单个或多个网站,并可以选择要压缩那一个文件和何种文件类型。

本文地址:http://www.45fan.com/a/question/73973.html
Tags: 网站 压缩 部门
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部