懂视

网页怎么压缩,大师们指点一下。

2024-12-02 02:15:03

HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。通过使用通用的压缩算法如gzip等,可以压缩HTML、JavaScript或CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种HTTP压缩算法。Web服务器处理HTTP压缩的工作原理如下:首先,Web服务器接收到浏览器的HTTP请求后,会检查浏览器是否支持HTTP压缩。在用户浏览器发送请求的HTTP头中,带有"Accept-Encoding:gzip,deflate"参数则表明支持gzip和deflate两种压缩算法。接下来,如果浏览器支持HTTP压缩,Web服务器会检查请求文件的后缀名。对于静态文件和动态文件,需要在MetaBase.xml中设置相应的属性。静态文件需要设置HcFileExtensions,动态文件需要设置HcScriptFileExtensions。设置完成后,Web服务器会到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件。如果不存在,会向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件。如果存在,则直接返回请求文件的压缩文件。对于ASPX等动态文件,如果文件后缀启用了压缩,Web服务器会动态压缩内容并返回浏览器,压缩内容不会存放到压缩缓存目录中。接下来介绍在IIS中启用HTTP压缩的方法。默认情况下,IIS并不支持HTTP压缩,需要进行简单的配置。首先,打开Internet信息服务(IIS)管理器,右击"网站"-"属性"选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制"。然后,在Internet信息服务(IIS)管理器,右击"Web服务扩展"-"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩展名为"HTTPCompression",添加"要求的文件"为C:WINDOWSsystem32inetsrvgzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中"设置扩展状态为允许"。接着,使用文本编辑器打开C:WindowsSystem32inetsrvMetaBase.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属性说明:HcDynamicCompressionLevelMetabaseProperty;HcOnDemandCompLevel属性说明:HcOnDemandCompLevelMetabaseProperty。这两个属性值一般推荐设置为9,具有最佳性价比。但在我的windowserver2003上,压缩率无论如何设置,jQuery和jQueryUI两个文件(58k/188k)压缩后的大小一直相同。(20k/45k)。编辑完毕后保存MetaBase.xml文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"-"管理工具"-"服务",停止"IISAdminService"后,即可保存。最后,重新启动IIS。可以到HTTP压缩测试网站验证结果。以jQuery为例,核心类库和UI类库原始大小分别是57k和188k,压缩后分别是20k和45k。我们通过Http头中的:Content-Encoding:gzip属性判断返回后的数据已经启用了gzip压缩。使用YSlow检测,当只启动静态文件压缩时:Gzip压缩评级为B;当同时启动了动态文件压缩时,Gzip压缩评级为A。