一、原理介绍
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率也很高。
二、Tomcat 配置
找到 tomcat server.xml
文件里的
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
/>
改为:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain"
/>
- compression="on" 打开压缩功能
- compressionMinSize="50" 启用压缩的输出内容大小,默认为2KB
- noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩
- compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩
重启 tomcat 即可
三、测试
1. 外网环境
如果你有外网环境,可直接借用第三方的工具进行检测:
http://tool.chinaz.com/Gzips/
这里给出的是站长之家的一个链接,直接在里面输入网址即可,会告诉你是否启用 gzip,以及压缩率是多少。
2. 内网环境
上述方法只适用于有外网环境的机器测试,如果是内网环境还有个简单的方法可以进行判断:
- 首先打开自己的内地网址。
- 按 f12 打开浏览器的控制台(这里使用的是 webkit 内核的浏览器),点击
network
栏,再刷新页面,点击最开始的配置中设置需要 gzip 的文件类型中的任意一个,出现下图中所示两点即为成功:
但是这个方法不能检测到 gzip 的压缩率。
笨一点的办法也有,点击这个面板中的Response
,把里面内容复制到一个文本文件中,保存,看文件的大小,再相除。
附上个人博客的对应博文地址:
http://lancelot_lewis.coding.me/2016/05/17/tomcat/tomcat-gzip/