今晚才发现ckeditor又有新版本放出了,于是上官网下了下来,顺便点进它的官方demo页面逛了圈,demo加载还是一样的很快,比我博客上用的快多了,很好奇官方demo是不是也用那个260多k的ckeditor.js,于是打开firefox的firebug插件,通过其网络功能观察了下,显示ckeditor.js只有83K,但通过访问其链接把js下到本地,却还是267K,原来是在服务器压缩了!我知道服务器能把文本内容压缩后再推送到客户端,但还是没想到能压缩到这个程度。心动了,于是上网google了下,把我的服务器(用的是tomcat6.20)也开启了gzip压缩功能,其间也收集到一些资料,在这里跟大家共享之。
一、关于gzip
gzip是一个网页领域的压缩标准,GNU Zip格式。它通过向客户端浏览器发送gzip格式的压缩格式(通常能达到50%的压缩率以上),然后客户端浏览器对接收到的压缩格式进行解压缩,以达到减少网页访问打开时间,优化网站性能的目的。。l- 本文来自http://spyrise.org/blog/ -Qzf。
gzip压缩是很多服务器软件,如Apache,nginx,IIS等的标准配置。gzip更是绝大多数客户端浏览器支持的基本功能。b带CY- 本文来自http://spyrise.org/blog/ -带l#xnxSz。
开启gzip功能,会占用一定服务器的CPU。同时gzip的对象是一些文本格式的文件,如html、htm、css、js等。大家用过WinZip或 WinRAR的话,对一个Word文档压缩不了多少,但对一些文本文件的压缩率应该很大的,一般能达到30%左右,zip优化网站就是这个原理。
二. HTTP压缩工作原理
Web服务器处理HTTP压缩的工作原理如下:
1. Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
2. 如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
3. 如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
4. 如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
5. 如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
6. 如果请求文件是动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
下面以2个图片来加深理解:
1. 没使用gzip:
2. 使用gzip后:
三、tomcat服务器开启gzip功能的方法
tomcat5.0以后的版本是支持对输出内容进行gzip格式的压缩的。该功能默认是关闭的,如果需要启用该功能,我们需要修改tomcat的配置文件server.xml,修改的方法是在server.xml的节点
1 <connector connectiontimeout= "20000" port= "8080" protocol= "HTTP/1.1" redirectport= "8443" uriencoding= "UTF-8" ><connector connectiontimeout= "20000" port= "8080" protocol= "HTTP/1.1" redirectport= "8443" uriencoding= "UTF-8" ></connector></connector>
处加上属性: compression="on" ,即
下面是跟gzip功能有关属性的说明:
compression="on" 打开压缩功能
compressionMinSize="2048" // 启用压缩的输出内容大小,这里面默认为2KB
noCompressionUserAgents="gozilla, traviata" // 对于以下的浏览器,不启用压缩
compressableMimeType="text/html,text/xml" //压缩文本类型,多个用,隔开
四、测试gzip压缩功能是否正确开启:
测试的方法很简单,只要用firefox的firebug插件里的网络监控功能,看看下载js文件的体积是否有明显减少就知道了(测试前最好清下浏览器的缓存)。
另外还可以用httpclient来写一个测试程序(以下内容摘自java自由人 ):
一旦启用了这个压缩功能后,我们怎么来测试压缩是否有效呢?首先Tomcat是根据浏览器请求头中的accept-encoding来判断浏览器是否支持压缩功能,如果这个值包含有gzip,就表明浏览器支持gzip压缩内容的浏览,所以我们可以用httpclient来写一个这样的简单测试程序
01 /**
02 * HTTP客户端测试类
03 * @author liudong
04 */
05 public class HttpTester {
06
07 /**
08 * @param args
09 */
10 public static void main(String[] args) throws Exception{
11 HttpClient http = new HttpClient();
12 GetMethod get = new GetMethod( "http://www.dlog.cn/js/prototype.js " );
13 try {
14 get.addRequestHeader( "accept-encoding" , "gzip,deflate" );
15 get.addRequestHeader( "user-agent" , "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toolbar; Maxthon 2.0)" );
16 int er = http.executeMethod(get);
17 if (er== 200 ){
18 System.out.println(get.getResponseContentLength());
19 String html = get.getResponseBodyAsString();
20 System.out.println(html);
21 System.out.println(html.getBytes().length);
22 }
23 } finally {
24 get.releaseConnection();
25 }
26 }
27 }
执行这个测试程序,看看它所输出的是什么内容,如果输出的是一些乱码,以及打印内容的长度远小于实际的长度,那么恭喜你,你的配置生效了,你会发现你网站的浏览速度比以前快多了。
五、介绍一个在线gzip压缩网页的网站
http://www.gidnetwork.com/tools/gzip-test.php ,大家在服务器使用gzip功能前,可以先使用这个网站把自己的页面进行gzip压缩,看能压缩多少,好有个感性的认识,用法很简单,输入要测试的页面,再点“check”按钮就OK了
分享到:
相关推荐
为了提升用户体验并减轻网络带宽的压力,TOMCAT服务器可以通过启用GZIP压缩功能来优化数据传输。GZIP是一种常用的文件格式与数据压缩算法,能够显著减少文件大小,从而提高传输效率。对于使用TOMCAT6作为应用服务器...
在Web应用中,开启gzip压缩功能能够显著减小数据传输量,从而加快网页加载速度,降低服务器带宽消耗。以下是对EhCache开启gzip压缩功能的详细说明。 首先,gzip是一种广泛使用的数据压缩算法,尤其在Web服务器中,...
在IT行业中,优化Web服务性能是一项重要的任务,其中一种常用的方法是通过开启服务器的数据压缩功能,比如在Tomcat中使用gzip来压缩数据。gzip是一种广泛使用的数据压缩算法,尤其适用于HTTP传输,它能够显著减少...
【描述】:这份资料“tomcat设置gzip压缩共2页.pdf.zip”包含两页的内容,详细讲解了如何在Tomcat服务器环境中启用Gzip压缩功能。通常,这样的文档会涵盖以下关键步骤和注意事项: 1. **理解Gzip压缩**:首先,会...
本文将详细介绍如何在Tomcat服务器中开启GZIP压缩功能。 #### 1. GZIP压缩简介 GZIP是一种广泛使用的数据压缩格式,它使用Lempel-Ziv编码(LZ77)进行压缩。当服务器将数据发送给客户端时,如果浏览器支持GZIP压缩...
对于Apache Tomcat这种广泛使用的Java Web应用服务器,Tomcat 7版本提供了内置的支持以开启gzip压缩功能,从而帮助用户优化其Web应用的性能。 在Tomcat 7服务器中开启gzip压缩功能,主要通过修改Tomcat的配置文件来...
标题 "Tomcat GZIP源码" 指的是Apache Tomcat服务器中用于实现GZIP压缩功能的源代码。GZIP是一种广泛使用的数据压缩算法,它能够有效地减小HTTP响应的大小,从而提高网页加载速度,降低网络带宽的消耗。在Tomcat中,...
设置完gzip压缩后,Tomcat服务器会对符合压缩条件的响应进行压缩处理,提升用户体验。 总结来说,本文提供的知识点包括了如何配置Tomcat的多端口域名访问以及如何开启gzip压缩。这些设置对于提高开发效率和服务器...
总体来说,通过启用Tomcat服务器的gzip压缩功能,可以有效地减少网络传输的数据量,加快网页加载速度,为用户提供更加流畅的浏览体验。不过,管理人员也需密切关注服务器性能变化,确保网站在高效率的同时,仍能保持...
Tomcat服务器的gzip压缩功能是一种优化策略,旨在提高Web应用的性能,减少网络传输的数据量。HTTP压缩主要通过将服务器发送到客户端的资源(如HTML、CSS、JavaScript等)压缩后再传输,从而加快页面加载速度,减少...
在现代网络应用中,提高网站响应速度和减少数据传输量是提升用户体验的重要方面。...本文将详细介绍在Apache Tomcat服务器上设置GZIP压缩的原理...通过综合考虑以上因素,可以实现对Tomcat服务器GZIP压缩功能的最佳配置。
**纯Tomcat服务器的GZIP配置** 在Tomcat中启用GZIP压缩非常简便。只需在`server.xml`的HTTP Connector配置中添加`compression`参数,并将其值设为`on`。例如: ```xml maxThreads="150" connectionTimeout=...
以上方法可以确保服务器端的Gzip压缩功能被正确地配置和启用,并且客户端能够处理压缩后的数据。这对于提高网站性能、减少数据传输量和加快页面加载速度都是至关重要的。在实际部署时,还需要注意服务器的CPU资源...
本文将深入探讨如何在Tomcat服务器上启用GZIP压缩以提高Web性能,并提供详细的过程图解。GZIP压缩是一种常见的HTTP协议支持的数据压缩机制,能够显著减少网络传输的数据量,从而加快网页加载速度,降低服务器带宽...
6. **性能优化**:通过调整线程池大小、启用NIO连接器、使用HTTP/2协议、开启GZIP压缩等方式可以提升Tomcat的性能。 7. **集群和负载均衡**:在高并发场景下,可以配置Tomcat集群以实现负载均衡和故障转移,提高...
通过修改服务器配置文件(如Tomcat的`server.xml`),我们可以开启gzip压缩并设置相应的参数,如最小压缩大小、缓存大小等。例如,在Tomcat中,我们可以在`Connector`元素中添加`compressableMimeType`和`...