Java Web知识Java开发那些事Java学习笔记

javaee项目优化之传输数据压缩

2017-04-01  本文已影响135人  Java面试官

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

压缩过的:

查询页面压缩.png

ps:从这幅图中也可以看出压缩的幅度有多大了,没有压缩前服务器返回的字节数是4851,而在压缩过后服务器返回的数据就变成了1766,而压缩率达到了63.6%。


Note:发布的这些文章全都是自己边学边总结的,难免有纰漏,如果发现有不足的地方,希望可以指出来,一起学习咯,么么哒。
开源爱好者,相信开源的力量必将改变世界:
** osc :** https://git.oschina.net/xi_fan
github: https://github.com/wiatingpub

上一篇下一篇

猜你喜欢

热点阅读