为你的web网站提速度之gzip压缩

简介

         HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%,大大的节约了流量。一般对于JSCSShtml等静态资源的压缩率较高,最近测试最高能到69%

 

安装使用

 

         实现gzip的方式有很多中,比如使用静态资源服务器内置模块apache,nginx都提供了支持。这里主要使用javaweb程序中实现。

         1http://sourceforge.net/projects/filterlib 下载

         2解压开将tk-filters.jar加入到web项目的依赖中,如果使用maven则需要手动安装到本地。

      3 ${ tk-filters}\conf\tk-filters.properties文件拷贝到src中,maven项目则放进资源文件中。

      4 修改配置项启用

           GZIPFilter.Enabled=true

              GZIPFilter.LogStats=true

              CacheFilter.Enabled=true

       5 修改web.xml 加入如下配置

        

                  <!-- 使用gzip压缩  -->

         <filter>

    <filter-name>GZIPFilter</filter-name>

    <filter-class>com.tacitknowledge.filters.gzipfilter.GZIPFilter</filter-class>

  </filter>

  <!-- GZIPFilter 设置压缩的文件类型--> 

 <filter-mapping>

    <filter-name>GZIPFilter</filter-name>

    <url-pattern>*.gif</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>GZIPFilter</filter-name>

    <url-pattern>*.jpg</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>GZIPFilter</filter-name>

    <url-pattern>*.png</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>GZIPFilter</filter-name>

    <url-pattern>*.js</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>GZIPFilter</filter-name>

    <url-pattern>*.css</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>GZIPFilter</filter-name>

    <url-pattern>*.jsp</url-pattern>

  </filter-mapping>

 

 

 

  <!-- CacheFilter缓存定义设置此项时tk-filters.propertiesCacheFilter.Enabled=true才可用 -->

  <filter>

    <filter-name>CacheFilter</filter-name>

    <filter-class>com.tacitknowledge.filters.cache.CacheHeaderFilter</filter-class>

  </filter>

  <!-- CacheFilter 设置缓存的文件类型-->

  <filter-mapping>

    <filter-name>CacheFilter</filter-name>

    <url-pattern>*.gif</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>CacheFilter</filter-name>

    <url-pattern>*.jpg</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>CacheFilter</filter-name>

    <url-pattern>*.png</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>CacheFilter</filter-name>

    <url-pattern>*.js</url-pattern>

  </filter-mapping>

  <filter-mapping>

    <filter-name>CacheFilter</filter-name>

    <url-pattern>*.css</url-pattern>

  </filter-mapping>

      

重启web应用看到log日志

信息: $Id: CacheHeaderFilter.java,v 1.10 2005/03/12 01:52:28 mike Exp $

五月 13, 2014 10:24:05 上午 org.apache.catalina.core.ApplicationContext log

信息:       CacheFilter: true

五月 13, 2014 10:24:05 上午 org.apache.catalina.core.ApplicationContext log

信息:       CacheFilter.ExpirationMinutes: -1

五月 13, 2014 10:24:05 上午 org.apache.catalina.core.ApplicationContext log

信息: $Id: GZIPFilter.java,v 1.15 2005/03/12 01:52:29 mike Exp $

五月 13, 2014 10:24:05 上午 org.apache.catalina.core.ApplicationContext log

信息:       GZIPFilter.Enabled: true

五月 13, 2014 10:24:05 上午 org.apache.catalina.core.ApplicationContext log

信息:       GZIPFilter.LogStats: true

五月 13, 2014 10:24:05 上午 org.apache.catalina.core.ApplicationContext log

访问你的web应用日志输出

五月 13, 2014 10:24:44 上午 org.apache.catalina.core.ApplicationContext log

信息: GZIPFilter: Original / GZip / Saved / Ratio: 1027 / 483 / 544 / 47%

 

猜你喜欢

转载自liuyieyer.iteye.com/blog/2065657