说明
HTTP压缩可以大大提高浏览网站的速度
它的原理是,在客户端请求服务器对应资源后,服务器端将资源文件压缩,再输出到客户端
由客户端的浏览器负责解压缩并浏览。即:通过减小HTTP响应大小来减少响应时间。相
对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。
gzip
关于 gzip,详见:
https://www.malaoshi.top/show_1EF2b9fjhVrl.html
tomcat开启gzip
Tomcat5.0以上。 修改 TOMCAT目录/conf/server.xml 配置文件,修改下面节点:
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,application/javascript,text/css,text/plain,text/json"/>
参数说明:
compression="on"开启压缩。可选值:”on”开启,”off”关闭,”force”任何情况都开启。compressionMinSize="2048":大于2KB的文件才进行压缩。用于指定压缩的最小数据大小,单位B,默认2048B。注意此值的大小,如果配置不合理,产生的后果是小文件压缩后反而变大了,达不到预想的效果。noCompressionUserAgents="gozilla, traviata",对于这两种浏览器,不进行压缩(我也不知道这两种浏览器是啥,百度上没找到),其值为正则表达式,匹配的UA将不会被压缩,默认空。compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"会被压缩的MIME类型列表,多个逗号隔,表明支持html、xml、js、css、json等文件格式的压缩(plain为无格式的,可能访问 .txt文件)
坑:有的文件压缩、有的文件不压缩
tomcat默认大于 48Kb 的文件,为了节省cpu就不压缩
解决方式一:强制全局压缩
该tomcat下的所有web应用都会强制压缩
继续加上下面配置:
useSendfile="false"
解决方式
指定某个 web应用 强制压缩
配置该web应用的 web.xml:
<init-param>
<param-name>sendfileSize</param-name>
<param-value>96</param-value> <!-- value in KB where compression is turned off in the name of CPU utilization -->
</init-param>
提前将体积大的静态文件进行GZIP压缩
详见:
https://www.malaoshi.top/show_1IX8YbeThf0l.html
参考:
https://www.cnblogs.com/DDgougou/p/8675504.html
https://blog.csdn.net/bwangel/article/details/106277058