王朝网络
分享
 
 
 

谈网站压缩

王朝other·作者佚名  2006-01-08
宽屏版  字体: |||超大  

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)就是其中之一,它能应用到单个或多个网站,并可以选择要压缩那一个文件和何种文件类型。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有