1、效果展现
2、如何使用gzip
<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF⑻"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"/>
-
compression="on"
开启紧缩
-
compressionMinSize="2048"
大于2KB的文件才进行紧缩(《高性能网站建设指南》建议1KB或2KB以上,缘由不得而知)
-
noCompressionUserAgents="gozilla,traviata"
,对这两种阅读器,不进行紧缩(我也不知道这两种阅读器是啥,百度上没找到)
-
compressableMimeType="text/html,text/json"
表明支持html、xml、js、css、json等文件格式的紧缩(plain为无格式的,但对具体是甚么,我比较概念模糊)。
3、到底有无开启gzip
- java代码测试(没有外网权限时,可用。TGZIP.java(详细参照启用Tomcat6的隐藏Gzip紧缩功能),注意需要引入apache的commons包!)。
- http://gzip.zzbaike.com/,文章开始的图片就来自于这个网站(无外网权限的,不可用,该种做法无需介绍了)。
4、cache-control
①、CacheControlFilter.java
package com.honzh.common.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
public class CacheControlFilter implements Filter {
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
resp.setHeader("Cache-Control","max-age=0,private");
chain.doFilter(request,response);
}
@Override
public void destroy() {
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
②、web.xml中增加以上filer。
<filter>
<filter-name>cacheControlFilter</filter-name>
<filter-class>com.honzh.common.filter.CacheControlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cacheControlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5、gzip和无gzip的要求区分