陈奇网络工作室

如何用GZIP压缩Tomcat提高web性能

服务器

本文主要介绍了GZIP如何压缩Tomcat,提高web性能。 内容很清楚,感兴趣的伙伴可以学习一下。 读完之后我觉得会有用。

一.前言

最近做了一个项目,遇到了这样的问题。 服务器返回给客户端的json数据太多,在客户端上加载至少一分钟后渲染就完成了。 (当然,这个加载时间也与本地下行带宽有关。 )耗时耗流量,用户体验极差。 然后,通过网络搜索进行优化的方法是Http压缩。

HTTP压缩大大提高了网站的浏览速度。 其原理是,客户端请求与服务器对应的资源后,从服务器端压缩资源文件并输出到客户端,客户端浏览器进行解压缩并浏览。 这意味着通过减小HTTP响应大小来缩短响应时间。 相对于HTML、CSS、Javascript和Text (典型的浏览过程),u5de6可以节省约40%的通信量。 更重要的是,还可以压缩CGI、PHP、JSP、ASP、servlet、SHTML等动态生成的网页,并且压缩效率也很高。 GZIP本身是一种网络流压缩算法,应用相当广泛。 本文针对apache tomcat 8.0.47配置了GZIP压缩。 浏览器使用Mozilla Firefox 35.0.1、调试附带的Firebug。 以下网络相关截图来自Firebug控制台。

二. Gzip压缩概述

1. HTTP协议支持GZIP压缩机制,该机制也称为协议压缩器。 HTTP GZIP压缩是WEB服务器和浏览器共同遵守的协议。 这意味着WEB服务器和浏览器都必须遵守。 目前主流的服务器和浏览器都支持GZIP压缩技术。 包括Chrome、IE、FireFox、Opera等; 服务器包括tomcat、Apache、IIS等。

2. GZIP主要用于压缩静态文本文件,如html、css、javascript,它也是动态生成的网页,包括CGI、PHP、JSP、ASP、servlet、SHTML的输出

3. GZIP压缩比例通常为3~10倍,这样可以大大节省服务器的网络带宽,大大提高浏览器浏览速度。

4. GZIP是一种数据压缩格式,缺省情况下,当前使用deflate算法只压缩数据部分; deflate是一种压缩算法,是对huffman编码的增强。

5 .协议压缩是指基于HTTP协议进行压缩。 程序员不需要压缩和解压缩编码。 而是将压缩过程传递给WEB服务器,然后将解压缩过程传递给客户端。 如果客户端是支持GZIP压缩的浏览器,则解压缩过程不需要程序员参与,浏览器会根据一定的规则自动解压缩;如果客户端是http客户端,则必须手动进行GZIP解码。

6 .压缩过程:客户端发送http请求,向请求报头中的报头发送Accept-Encoding:GZIP、 如果携带deflate (当前浏览器缺省情况下通常如此),则浏览器意味着服务器必须进行gzip压缩,确认响应类型是否满足需要压缩服务器配置的类型(如果适用)

7 .解压缩过程:(浏览器)客户端接收响应,如果响应标头中包含Content-Encoding GZIP,浏览器会自动将响应解压缩为GZIP并在页面上显示。 如果不包含,则直接显示在页面上。

8.GZIP的缺点。 由于使用GZIP会增加服务器压缩压力( cpu消耗)和客户端压缩压力,因此对服务器配置的需求较高,而非使用GZIP的工程。 另外,压缩也需要时间,为了占用更小的空间并获得高压缩比,需要牺牲很长的时间。相反,如果时间宝贵,要求高速,得到的压缩率必须小,当然,占用更大的空间(压缩率=原始内容大小/压缩后的大小,压缩率越大,表示占用压缩后空间的压缩包越小)。这是物理空间和时间的矛盾。

三.如何在tomcat上部署

版本要求: Tomcat5.0或更高版本。 更改%TOMCAT_HOME%/conf/server.xml。 修订节点如下。

Connector port=& #039; 8080& #039;

protocol=& #039; HTTP/1.1& #039;

connectionTimeout=& #039; 20000& #039;

redirectPort=& #039; 8443& #039;

compression=& #039; 开on& #039;

compressionMinSize=& #039; 2048& #039;

nocompressionuseragents=& #039; Gozilla,traviata& #039;

compressablemimetype=& #039; text/html、text/xml、text/javascript、

application/javascript、text/css、text/plain、text/json& #039; /

参数说明:

1、compression=& #039; 开on& #039; 打开压缩。 可选值:“打开”为开,“关闭”为关,“强制”在任何情况下都为开。

2、compressionminsize=& #039; 2048& #039; 压缩大于2kb的文件。 指定压缩的最小数据大小。 单位为b,默认为2048B。 请注意这个值的大小。 如果放置不当,小文件会被压缩,反而会变大,无法获得期望的效果。

3、nocompressionuseragents=& #039; Gozilla,traviata& #039;对于这两种浏览器,不进行压缩(我也不知道这两种浏览器是什么,在百度上没有找到),其值是正则表达式,一致的UA不压缩,默认为空。

4、compressablemimetype=& #039; text/html、text/xml、application/javascript、text/css、text/plain、text/json& #039; compressableMimeType很重要,用于通知tomcat要压缩的文件。 如果指定了错误的类型,肯定无法压缩。 那么,如何知道要压缩的文件类型呢? 可以通过以下方法找到。

四.检查部署是否成功

修改完成后重新启动tomcat就可以了。 最后去检查网站: http://seo.chinaz.com/host=IIT share.com查询中的效果

五、常见错误(配置后无效) )。

可以通过以下步骤进行故障排除。

1、tomcat配置参数写入位置有误。 注意配置参数位于下图中的a区,即protocol=& #039; HTTP/1.1& #039; 中所述情节,对概念设计中的量体执行面积分析。

2、响应数据不是compressableMimeType参数配置的类型。 我遇到了这个洞。 我们的项目使用json进行前后端的传输。 所以一开始我以为是" text/json "但是打开Firebug的控制台时,Content-Type的值是" application/json " 参照图3。

3、响应数据大小小于compressionMinSize的配置值。

附件:优化结果

可以看到压缩率=65.6/8.4=7.810,时间比率=96/16.2=5.926,比较理想。

阅读以上内容,您是否了解GZIP如何压缩Tomcat并提高web性能? 另外,如果你想学习更多,请关注信息频道。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3