设为首页 收藏本站
查看: 1071|回复: 0

[经验分享] (转)使用tomcat的compression来提高网页加载速度

[复制链接]

尚未签到

发表于 2015-8-11 09:41:14 | 显示全部楼层 |阅读模式
  (原文)http://www.blogjava.net/freeman1984/archive/2010/09/15/332121.html     
     当网站从服器端请求的数据较大时,在有限的带宽下就会造成浏览器加载缓慢,有时候会造成页面没有响应,使用户体验变得很差,tomcat为我们提供了有效的解决了办法,就是使用压缩来解决传输问题。
      tomcat使用HTTP/1.1 GZIP 来压缩,以减少带宽压力,
      首先介绍下gzip:
      HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的.
      我们使用简单的例子来介绍tomcat的压缩使用:(使用firebug查看请求情况)
      首先是一个简单的servlet:
      内容:



public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("  <BODY>");
out.print(" <select> ");
for (int i = 0; i < 100000; i++) {
out.print("<option>testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest"+i+"</option>");
}
out.println("</select>");
out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

  我们将输出一个十万个选项的下拉框,在不使用的压缩的时候:
DSC0000.jpg
    请求数据达到9m ,大概的计算下我的下载用时(4m长城宽带):9*1024/(4*1024/8)=18m  ,加上多人共享带宽,也就是差不多20m。firebug显示20.96。这个速度网站体验肯定是很差的,接下来使用tomcat的压缩以后看看:
当然是要对其进行配置,有以下几个参数可以使用:
1. compression="on"
    是否启用压缩 on为启用(文本数据压缩) off为不启用, force 压缩所有数据
2. compressionMinSize1="2048"
    当超过最小数据大小才进行压缩
3. noCompressionUserAgents="gozilla, traviata"
    哪些客户端发出的请求不压缩,默认是不限制
4. compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  配置想压缩的数据类型,默认是 text/html,text/xml,text/plain
配置以后是这样的:



<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressionMinSize1="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"/>

  启动后再看:
DSC0001.jpg
这次数据被压缩到274.7k,响应速度也减少了一半,当然,服务器的数据压缩和浏览器的数据解压都需要使用时间。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-97303-1-1.html 上篇帖子: Target runtime Apache Tomcat 6.0 is not defined 下篇帖子: 关于Tomcat之response.encodeURL的实现疑问和发现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表