高性能网站建设学习笔记----压缩组件

  1、减小http响应的大小可以减少响应时间,减小传输包的大小可以有效的提高传输速度。gzip技术可用来压缩http响应包,并由此减少网络响应时间。

  2、web客户端: http请求中的Accept-Encoding头可以标识对压缩的支持:Accept-Encoding:gzip

  web服务器:通过相应中的Content-Encoding头来通知web客户端:Content-Encoding:gzip

  3、图片和PDF不应该压缩,因为本来就是已经压缩过的了,应该压缩脚本,样式表,html文档等。

  4、成本:服务器会花费额外的cpu来完成压缩,客户端要对压缩过的文件进行解压。通常对大于1kb或者2kb的文件进行压缩。

  5、apache 1.3 服务器使用mod_gzip模块来完成gzip压缩:

        启用mod_gzip: mod_gzip_on 

        指定哪些文件需要进行压缩: mod_gzip_item_include    file       \.js$

                                            mod_gzip_item_include    mime    ^application/x-javascript$

                                            mod_gzip_item_include    file       \.css$

                                            mod_gzip_item_include    mime    ^text/css$

       压缩过的内容保存在磁盘上,并且在原内容发生变化是更新压缩过的内容

                                            mod_gzip_can_negotiate yes

                                            mod_gzip_update_static  yes

       没有控制压缩级别的指令

 6、apache 2.x 服务器使用mod_deflate模块来完成gzip压缩

       通过以下配置完成对哪些文件需要进行压缩

             AddOutputFilterByType DEFLATE text/html text/css application/x-javascript    

        控制压缩级别的指令:DeflateCompressionLevel
 7、代理缓存

      使用代理的请求,会发生缓存中的组件(有可能是压缩过的有可能是未压缩过的,取决于缓存它的那个请求是压缩还是为压缩请求)并非是想要的压缩或者未压缩组件。解决这种情况的方法是在web服务器的响应头中添加Vary头。Vary: Accept-Encoding。这使得代理缓存会缓存两个版本:压缩的和非压缩的。

 8、浏览器白名单

      用来指定哪些浏览器使用gzip,避免向一些不支持gzip的浏览器提供gzip服务

      apache 1.3:

      mod_gzip_item_include  reqheader  "User-Agent:MSIE[6-9]"

      mod_gzip_item_include  reqheader  "User-Agent:Mozilla/[5-9]"

      apache 2.x:

      BrowserMatch  ^MSIE [6-9] gzip

      BrowserMatch  ^Mozilla/[5-9] gzip

posted @ 2011-04-07 16:34  瑞欧儿  阅读(237)  评论(1)    收藏  举报