`

tomcat 服务器开启gzip压缩功能(转载)

阅读更多

 

tomcat 服务器开启gzip压缩功能
2010-05-05 9:41

转自: http://blog.soluo.info/archives/28.html

今晚才发现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%的压缩率以上),然后客户端浏览器对接收到的压缩格式进行解压缩,以达到 减少网页访问打开时间,优化网站性能的目的。

gzip压缩是很多服务器软件,如Apache,nginx,IIS等的标准配置。gzip更是绝大多数客户端浏览器支持的基本功能。

开启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"                //压缩文本类型,多个用,隔开

compression="on" 
compressionMinSize="2048" 
noCompressionUserAgents="gozilla, traviata" 
compressableMimeType="text/html,text/xml,text/javascript"


四、测试gzip压缩 功能是否正确开启:
测试的方法很简单,只要用firefox的firebug插件里的网络监控功能,看看下载js文件的体积是否有明显减少就知道了(测试前最好清下浏览器的 缓存)。
另外还可以用httpclient来写一个测试程序(以下内容摘自java自由人):
一旦启用了这个压缩功能后,我们怎么来测试压缩是否有效呢?首先Tomcat是根据浏览器请求头中的accept-encoding来判断浏览器是 否支持压缩功能,如果这个值包含有gzip,就表明浏览器支持gzip压缩内容的浏览,

五、介绍一个在线 gzip压缩网页的网站
http://www.gidnetwork.com/tools/gzip-test.php,大家在服务器 使用gzip功能前,可以先使用这个网站把自己的页面进行gzip压缩,看能压缩多少,好有个感性的认识,用法很简单,输入要测试的页面,再点 “check”按钮就OK了。

 

原文地址:http://hi.baidu.com/javacookies/blog/item/fe3edadb5aa6c56ad1164e3a.html

分享到:
评论

相关推荐

    开启TOMCAT6的GZIP压缩

    开启TOMCAT6的GZIP压缩功能,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。...

    Tomcat7中开启gzip压缩功能的配置方法

    很多大站都开启了gzip压缩,不过也有很多网站并没有开启gzip压缩,上次看了一篇文章说开启gzip压缩后对搜索引擎不友好,但从带宽和流量的角度来看,还是有必要开启gzip压缩的。 对于tomcat7服务器,打开conf文件夹下...

    tomcat设置gzip压缩的原理及配置方法

    原理简介  HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器...Tomcat5.0以后的版本是支持对输出内容进行压缩的,使用的是gzip压缩格式 。 修改%TOMCAT_HOME%/conf/server.

    GZIP压缩Tomcat并提升web性能过程图解

     HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。即:通过减小HTTP响应大小来减少响应时间。相...

    关于JavaScript的gzip静态压缩方法

    一个页面减少10KB对于一个小网站来说,算不上什么,但对于大型站点来说,累计起来却是一个很大的流量……gzip压缩是一个有效可行的方法,但需要Apache的支持(Apache与IIS共用一个端口解决方法)。 传统的JS压缩(删除...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    张宴《实战Nginx:取代Apache的高性能Web服务器》pdf电子版下载,此资料网友共享,请购买作者正版书籍. 目录介绍: 第1部分 基础篇 第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 ...

    ASP.NET Core中的响应压缩的实现

    我们熟悉的Web服务器,比如IIS、Tomcat、Nginx、Apache等都可以使用压缩技术,常用的压缩类型包括Brotli、Gzip、Deflate,它们对CSS、JavaScript、HTML、XML 和 JSON等类型的效果还是比较明显的,但是也存在一定的...

    实战Nginx.取代Apache的高性能Web服务器

    5.1 Nginx与JSP(Tomcat)在Linux上的安装、配置 5.2 Nginx与ASP.NET(Mono+FastCGI)在Linux上的安装、配置 5.3 Nginx与Perl(FastCGI)在Linux上的安装、配置 第6章 Nginx HTTP负载均衡和反向代理的配置与优化 ...

    nginx 1.9 window 版本

    #开启gzip压缩 gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; #设定请求缓冲 client_header_buffer_size 1k; large_client_header_buffers 4 4k; include /etc/nginx/conf.d/*.conf; include /etc/...

    实战nginx-张宴

    5.1 Nginx与JSP( Tomcat) 在Linux上的安装、 配置 5.2 Nginx与ASP.NET( Mono+FastCGI) 在Linux上的安装、 配置 5.3 Nginx与Perl( FastCGI) 在Linux上的安装、 配置 第6章 Nginx HTTP负载均衡和反向代理的配置...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

Global site tag (gtag.js) - Google Analytics