一、前言
最近做了个项目,无意总发现了HTTP压缩
HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。即:通过减小HTTP响应大小来减少响应时间。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省60%左右的流量。更为重要的是,它可以对动态生成的,包括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压缩技术。包括 IE、FireFox、Opera 等;服务器有 tomcat、Apache 和 IIS 等。
2. GZIP 主要用来压缩html,css,javascript,等静态文本文件,也支持对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩。
3. GZIP 压缩的比率通常在3~10 倍之间,这样可以大大节省服务器的网络带宽,大大提升浏览器的浏览速度。
4. GZIP 是一种数据压缩格式,默认且目前仅使用deflate算法压缩data部分;deflate是一种压缩算法,是huffman编码的一种加强。
5. 协议压缩就是依据HTTP协议进行压缩,不需要程序员进行压缩,解压编码,而是把压缩过程交给WEB服务器,将解压过程交给客户端。 如果客户端为支持GZIP压缩的浏览器,那么解压过程也不需要程序员参与,浏览器会按照一定的规则自动进行解压缩;如果客户端为HttpClient ,那么就需要手动进行GZIP解码了。
6. 压缩过程:客户端发送http请求,如果请求头header中携带Accept-Encoding: gzip,deflate (现在的浏览器一般默认都是这样),那么浏览器的意思是:服务器需要进行GZIP压缩,再看响应内容的类型是否满足服务器配置的需要压缩的类型,如果符合,那么WEB服务器在传输响应内容之前,会对响应内容进行压缩,并在响应头中添加Content-Encoding gzip;如果不符合,那么将不压缩,直接返回。
7. 解压过程:(浏览器)客户端接收到响应,如果响应头中包含Content-Encoding GZIP,那么浏览器会自动将响应内容进行GZIP解压缩,然后再呈现在页面上。如果不包含,那么将直接呈现在页面上。
三、tomcat中配置方法
版本要求:Tomcat5.0以上。 修改%TOMCAT_HOME%/conf/server.xml,修订节点如下:
复制代码
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useSendfile="false" <!--针对8.5以上版本-->
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,
application/javascript,text/css,text/plain,text/json"/>
复制代码
参数说明:
1、compression="on" 开启压缩。可选值:"on"开启,"off"关闭,"force"任何情况都开启。
2、compressionMinSize="2048"大于2KB的文件才进行压缩。用于指定压缩的最小数据大小,单位B,默认2048B。注意此值的大小,如果配置不合理,产生的后果是小文件压缩后反而变大了,达不到预想的效果。
3、noCompressionUserAgents="gozilla, traviata",对于这两种浏览器,不进行压缩(我也不知道这两种浏览器是啥,百度上没找到),其值为正则表达式,匹配的UA将不会被压缩,默认空。
4、compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"会被压缩的MIME类型列表,多个逗号隔,表明支持html、xml、js、css、json等文件格式的压缩(plain为无格式的,但对于具体是什么,我比较概念模糊)。compressableMimeType很重要,它用来告知tomcat要对哪一种文件进行压缩,如果类型指定错误了,肯定是无法压缩的。那么,如何知道要压缩的文件类型呢?可以通过以下这种方法找到。
分享到:
相关推荐
在Tomcat中启用Gzip压缩可以优化Web应用的性能,尤其对于那些包含大量文本内容的网页。 Tomcat设置Gzip压缩涉及到以下几个关键知识点: 1. **Gzip压缩原理**:Gzip通过查找和替换重复的数据序列来减小文件大小。它...
Tomcat服务器的gzip压缩功能是一种优化策略,旨在提高Web应用的性能,减少网络传输的数据量。HTTP压缩主要通过将服务器发送到客户端的资源(如HTML、CSS、JavaScript等)压缩后再传输,从而加快页面加载速度,减少...
本文将深入探讨如何在Tomcat服务器上启用GZIP压缩以提高Web性能,并提供详细的过程图解。GZIP压缩是一种常见的HTTP协议支持的数据压缩机制,能够显著减少网络传输的数据量,从而加快网页加载速度,降低服务器带宽...
在IT行业中,优化Web服务性能是...如果你遇到内外网传输效率低下的问题,启用gzip压缩可能是解决之道。但需要注意,虽然gzip压缩减少了数据传输,但也增加了服务器CPU的使用,因此需要根据实际情况平衡性能与资源消耗。
通过深入理解这些知识点,并结合Tomcat的GZIP源码,开发者可以定制适合自己项目的GZIP压缩策略,优化服务器性能,同时确保内容的正确显示。对于处理ACTION和JSP这类动态生成的内容,正确的字符集处理和兼容性设计尤...
通过在Tomcat和Apache中启用GZIP压缩,可以显著提高网站的性能。对于文本内容如HTML、CSS和JavaScript文件来说,压缩后可以节省大量的传输带宽,从而提高用户体验。同时,正确配置GZIP压缩也可以帮助减少服务器资源...
在EhCache中启用gzip压缩,通常有两种主要方式: 1. **基于Filter的缓存压缩**:一种方式是利用Servlet容器(如Tomcat)的Filter机制。可以创建一个自定义的Filter,该Filter负责在将数据从EhCache返回给客户端之前...
【GZIP配置详解:Tomcat, Apache, IIS】 GZIP是一种广泛使用的数据压缩...总的来说,无论是在Tomcat、Apache还是IIS服务器上,启用GZIP压缩都是提升Web性能的有效手段,只需要根据各自服务器的配置方式进行适当调整。
在Web服务器上启用gzip压缩,可以降低带宽消耗,尤其是在移动网络环境下,这一优势更为明显。 在J2EE环境中,实现gzip压缩通常有以下几种方式: 1. **服务器配置**:大多数现代Web服务器(如Apache Tomcat、Jetty...
3. 保持系统更新,利用Tomcat新版本带来的性能提升。 总结,Tomcat性能优化涉及JVM、Tomcat配置、Web应用、代码质量以及监控等多个层面,需要结合实际业务场景进行综合考虑。只有全面了解并掌握这些优化策略,才能...
优化Tomcat包括调整JVM参数、限制并发连接数、开启GZIP压缩等。在安全性方面,应启用SSL加密通信,配置防火墙规则,限制远程管理访问,并定期更新Tomcat以修复安全漏洞。 八、Spring Boot与Tomcat整合 Spring Boot...
3. 启用GZIP压缩以减少网络传输的数据量。 安全性方面,需关注: 1. 配置SSL/TLS以提供安全的HTTPS连接。 2. 禁用不必要的默认服务和端口,避免攻击面。 3. 定期更新Tomcat以修复安全漏洞。 **总结** Tomcat与...
在Web服务器的配置优化中,启用Gzip压缩是一项重要的性能提升措施,它能显著减少网页的响应时间,提高用户体验。本文主要介绍在Apache Tomcat服务器上配置和验证Gzip压缩是否生效的方法。 首先需要了解Tomcat中关于...
本文主要讲解了如何在Tomcat中配置多端口域名访问,并且详细介绍了如何开启gzip压缩,以提高Web应用的性能和响应速度。 首先,我们要了解如何在Tomcat中配置不同的端口来访问同一域名。在Web服务器中,端口是用来...
Tomcat支持GZIP压缩功能,可以通过在`server.xml`中的`Connector`节点下添加相应的配置来启用压缩。 ```xml ,traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"/> ```...
5. 优化Web应用程序:压缩静态资源,减少HTTP请求,启用GZIP压缩,以及使用CDN服务等。 在安装和部署Tomcat时,还需要注意以下几点: 1. 确保Java环境已正确安装并配置,且版本与Tomcat兼容。 2. 配置系统环境变量...
在Tomcat中启用Gzip压缩,可以通过修改`server.xml`中的`Connector`元素来实现。 ```xml port="8080" protocol="HTTP/1.1" acceptCount="100" maxThreads="500" minSpareThreads="25" maxSpareThreads="75" ...
通过正确配置服务器,如Apache和Tomcat,启用GZIP或deflate压缩,可以显著减少页面传输数据量,加快用户体验。值得注意的是,虽然压缩会增加服务器CPU负担,但通常这点开销是可接受的,尤其是在提升整体浏览速度方面...