《高性能网站建设指南》阅读笔记_规则4- 压缩组件
发布时间:2013-11-22 浏览:291打印字号:大中小
1.什么东西应该压缩?
a.图片、PDF等二进制文件不应该压缩,因为它们已经压缩过了
b.太小的文件不应压缩。为小文件压缩而耗费一些CPU时间不太值得。一般来说,应该只对1KB或2KB以上的文件进行压缩。
2.浏览器端的支持
支持HTTP1.1的浏览器才能展现压缩过的内容。如果你用的是APACHE服务器,则可以设置“浏览器白名单”,只对名单里的客户端传输压缩过的内容。
3.HTTP压缩工作原理
Web服务器处理HTTP压缩的工作原理如下:
Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
4. IIS 6.0中配置HTTPGzip压缩的步骤: (本文以windows server 2003操作系统和IIS6.0服务器为例).win7不行
1、双击IIS服务器,右键点击网站,点击属性,然后点击服务,我们看到HTTP压缩,然后在压缩应用程序文件,压缩静态文件中打钩,然后点击确定,第一步就完成了
2、然后我们右键点击web服务扩展,点击添加一个新的web服务扩展,输入扩展名,为了便于我们识别,我们可以起名为gzip(关于起名应该是随意吧,小编没有测试过),然后点击添加,选择C:\WINDOWS\system32\inetsrv\gzip.dll,然后点击确定,扩展状态为允许,否则gzip不能生效,一切完成,我们就可以点击确定了.
3、接下来也是最重要的一步了,编辑IIS配置数据库配置文件,在此操作之前,我们应该关闭IIS服务器才能进行接下来的操作,当然我们也可以不关闭IIS服务器,我们双击IIS服务器,右键点击本地计算机,点击属性,在允许直接编辑配置数据库上打钩,那么我们不用关闭IIS就能直接配置服务器配置数据库配置文件了
4、 我们找到C:\WINDOWS\system32\inetsrv下的MetaBase.xml文件,操作这个文件之前应该先复制一份,以免出现意外的情况.打开此文件,搜索deflate,找到HcDoStaticCompression原来为false改为true,HcDynamicCompressionLevel原来为0,改为9,HcFileExtensions里面就可以添加我们需要压缩的后缀,这里添加的是静态文件,一般压缩html,js,css图片不列为压缩之列.动态的文件可不可以压缩呢,当然可以HcScriptFileExtensions里面就是填写要压缩的动态文件.配置完这个,我们要来配置下面的gzip,他们两个紧挨着的,配置方法相同.
5、一切步骤都就绪了,我们看看是否开启成功了呢,那么怎样查看呢,方法有两种,可以使用火狐的firebug,还可以使用站长工具查看
注意事项:
配置数据库配置文件之前应该关闭IIS,或者启用允许直接编辑数据库
在操作MetaBase.xml文件之前应该先备份一下,防止意外情况发生.
7、边缘情形:
正常情况下,当浏览器直接与服务器通信时我只要按常规的配置即可。但是当浏览器通过代理来发送请求的时候就变得非常复杂。可能会产生边缘情形(发送压缩内容到不支持它的客户端,忘记将压缩内容生命为已经进行了gzip压缩编码等)这就需要考虑压缩和缓存之间的平衡。