一简介
HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%,大大的节约了流量。一般对于JS,CSS,html等静态资源的压缩率较高,最近测试最高能到69%。
二安装使用
实现gzip的方式有很多中,比如使用静态资源服务器内置模块apache,nginx都提供了支持。这里主要使用javaweb程序中实现。
1到http://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.properties的CacheFilter.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%