javaee项目优化之传输数据压缩
title: 2017/4/2/01
date: 2017-04-02 09:45:32
说在前面
项目即将上线了,现在在各种优化,第一步肯定是从带宽入手了,可是带宽说穿了就是Money,要加大就得付费,刚刚好我们团队现在神马都不缺,就却钱,所以只能另寻它法,最后瞄准了数据压缩,就是将从服务器传输到客户端的数据进行压压压!
描述
gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户端加载后渲染呈现,这种情况文件一般都比较大,如果开启gzip ,那么服务器端响应后,会将页面,JS,CSS等文本文件或者其他文件通过高压缩算法将其压缩,然后传输到客户端,由客户端的浏览器负责解压缩与呈现。通常能节省40%以上的流量(一般都有60%左右),一些html,JSP文件也能够进行压缩。
由于我们的项目是部署在tomcat上的,所以直接以tomcat为例子
1、首先打开tomcat目录下的conf下的server.xml,找到一下信息:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
2、在找到的信息里边添加部分配置信息,变成如下所示:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8"
compression="on"
compressionMinSize="2048" compressableMimeType="application/json,text/html,text/xml,application/javascript,text/css,text/plain"
/>
配置信息:
compression="on" // 打开压缩功能
compressionMinSize="2048" // 启用压缩的输出内容大小,默认为2KB
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" // 哪些资源类型需要压缩,版本不同,可能这个配置会不同,具体的参考同目录下的web.xml中mime-mapping里边的内容
3、重启tomcat即可
那么问题来了,配置了之后如何知道是否生效了呢
网页压缩截图.png
- 方式一:在浏览器访问之后查看,例如:
查询页面未压缩.png
- 方式二:在http://www.gidnetwork.com/tools/gzip-test.php 这个网站里边进行测试,如未压缩的:
压缩过的:
查询页面压缩.pngps:从这幅图中也可以看出压缩的幅度有多大了,没有压缩前服务器返回的字节数是4851,而在压缩过后服务器返回的数据就变成了1766,而压缩率达到了63.6%。
Note:发布的这些文章全都是自己边学边总结的,难免有纰漏,如果发现有不足的地方,希望可以指出来,一起学习咯,么么哒。
开源爱好者,相信开源的力量必将改变世界:
** osc :** https://git.oschina.net/xi_fan
github: https://github.com/wiatingpub