摘要
大名鼎鼎YSlow说了,要"Compress components with gzip"以提高网页显示速度。本文主要讲解如何对iis6启用http压缩。
环境
- windows server 2003 sp2
- ms framework 2.0 sp2
- iis6
背景资料
使用 HTTP 压缩
如果您的站点使用了很大的带宽,或者您希望更加有效地使用带宽,请考虑启用 HTTP 压缩。HTTP 压缩在启用压缩的浏览器和 IIS 之间提供了更短的传输时间。既可以只压缩静态文件,又可以同时压缩静态文件和应用程序响应。如果网络带宽受到限制,使用 HTTP 压缩会很有用(至少对于静态文件来说),除非处理器利用率已经很高。
动态处理会影响 CPU 资源。对动态响应启用压缩后,每次请求动态响应时都会进行压缩。这意味着并不缓存动态响应,每次请求动态响应时,服务器可能需要更多的 CPU 周期来压缩和发送响应。已压缩的静态响应可以被缓存,因此不会像动态响应那样影响 CPU 资源。
HTTP 压缩的工作原理
IIS 在接收到请求时,将检查浏览器是否允许压缩。然后 IIS 会检查文件扩展名,以确定请求的文件是否为静态文件或包含动态内容。如果文件包含静态内容,IIS 将查看以前是否请求过该文件并且已将该文件以压缩格式存储在临时压缩目录中。如果文件没有以压缩格式存储,IIS 会将未压缩的文件发送到浏览器,并在临时压缩目录中添加此文件的压缩副本。如果文件以压缩格式存储,IIS 会将压缩过的文件发送给浏览器。在浏览器首次请求之前,所有文件都不压缩。
如果文件包含动态内容,IIS 将在生成此响应时进行压缩并将压缩后的响应发送给浏览器。不存储此文件的副本。
压缩静态文件的性能代价较小,而且通常只压缩一次,因为该文件随后被存储在临时压缩目录中。压缩动态生成的文件的代价要高一些,因为它们并不存储,并且每次请求时都必须重新生成。在浏览器上展开文件的代价非常小。压缩文件的下载速度更快,所以对于提高使用有限带宽的网络连接(如调制解调器连接)的所有浏览器的性能特别有好处。
默认情况下,压缩文件的截止日期是 1997 年 1 月 1 日,以防止代理服务器将缓存的压缩文件副本发送到未启用压缩的浏览器。这也意味着浏览器在下一次用户请求时并不显示文件的缓存副本,而是返回服务器请求新副本。
http压缩算法
http压缩算法分为两种,deflate和gzip,iis和主流浏览器这两种压缩算法都支持,gzip从压缩效果及资源使用方面更好。
启用http压缩
1. 进入iis管理控制器,查看"网站"节点属性,在"服务"标签页中选中"启用应用程序文件"、"压缩静态文件"。
2. 停止iis服务
运行iisreset -stop
3. 编辑MetaBase.xml
停止iis服务后才能编辑该文件,否则无法保存。打开C:\Windows\system32\inetsrv\MetaBase.xml:
<!-- deflate 算法配置 -->
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="FALSE"
<!-- 压缩级别,0~10,建议9 -->
HcDynamicCompressionLevel="9"
<!-- 静态文件扩展名(与动态生成文件区别参见上述"HTTP 压缩的工作原理") -->
HcFileExtensions="htm
html
txt
js
css
png
gif
jpg"
HcOnDemandCompLevel="10"
HcPriority="1"
<!-- 动态生成文件扩展名(与静态文件区别参见上述"HTTP 压缩的工作原理") -->
HcScriptFileExtensions="asp
dll
exe
aspx
ashx"
>
</IIsCompressionScheme>
<!-- gzip 算法配置 -->
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
<!-- 压缩级别,0~10,建议9 -->
HcDynamicCompressionLevel="9"
<!-- 静态文件扩展名(与动态生成文件区别参见上述"HTTP 压缩的工作原理") -->
HcFileExtensions="htm
html
txt
js
css
png
gif
jpg"
HcOnDemandCompLevel="10"
HcPriority="1"
<!-- 动态生成文件扩展名(与静态文件区别参见上述"HTTP 压缩的工作原理") -->
HcScriptFileExtensions="asp
dll
exe
aspx
ashx"
>
</IIsCompressionScheme>
4. 启动iis服务
运行iisreset -start
效果
启用压缩前后YSlow的评分对比:
修改前
修改后
- 大小: 13.7 KB
- 大小: 17.5 KB
- 大小: 15 KB
分享到:
相关推荐
IIS上启用Gzip压缩(HTTP压缩)
IIS网页启用Gzip压缩,提高网页访问速度,伪静态页面也可压缩,解决Gzip不被百度收录问题
在IIS6中启用压缩,可以在不修改程序代码的前提下大大缩小页面大小,改善用户体验
IIS启用GZIP压缩js、css无效的原因及解决方法.docx
网站加速方法之IIS上启用Gzip压缩
网站加速方法之IIS上启用Gzip压缩.doc
微软的 IIS 服务器同样也是目前用得最多的 WEB 服务器之一,而且用来运行 ASP 页面也是必不可少的。IIS6 本身支持 gzip 压缩,接下来我们介绍如何在 IIS6 中启用压缩功能。
IIS6.0开启gzip压缩功能,我还有一个7.0的方法。可以查看一下我的资源。
摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 二.前言. 本文的知识点是从互联网收集整理, 主要来源于中文wiki. 使用YSlow检测网站启用了哪些优化时, ...
摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 二.前言. 本文的知识点是从互联网收集整理, 主要来源于中文wiki. 使用YSlow检测网站启用了哪些优化时, ...
1、打开Internet信息管理器,右击”网站“...2、打开Web服务扩展,在其中增加Gzip压缩扩展并启用 3、设置IIS可进行压缩的文件类型,这一步骤比较繁杂,有一高人写了一个批处理文件,用来简化此操作,批处理内容如下
IIS启用GZip压缩,是提高网站速度和减轻服务器负载的一个优化手段和方法,经测试,网站启用GZip压缩后,速度快了3倍!而配置起来也相当的简单,因此被广大网站管理员使用。本文将详细介绍如何在IIS启用GZip压缩,...
后来研究发现,IIS启用GZip时默认压缩的只有html网页,如果需要压缩css、js等文件,还需要另外简单配置一个文件。 打开C:\WINDOWS\system32\inetsrv\MetaBase.xml这个文件,然后查找“IIsCompressionScheme”,...
IIS7已经启用静态文件压缩(Gzip)但是死活不压缩,查找后发现是II7下MIME类型设置问题 将.js的MIME类型设置为application/javascript 再查看页面,已经启用了Gzip。 不过,几个天后又发现有的js文件被压缩,有的...
Microsoft IIS压缩IIS压缩是两个IIS压缩方案提供程序iisbrotli.dll和iiszlib.dll ,使IIS可以压缩HTTP响应内容。 iisbrotli.dll支持Brotli压缩,而iiszlib.dll支持Gzip和Deflate压缩。 IIS压缩方案提供程序是IIS ...