`

在Tomcat上直接配置GZIP压缩

阅读更多

tomcat本身在5.0版本以后是支持内容压缩的,它使用的是gzip的压缩格式,我们先来看Tomcat文档中对下面两个配置的注解(红色粗体字部分)

compressableMimeType

The value is a comma separated list of MIME types for which HTTP compression may be used. The default value istext/html,text/xml,text/plain.

compression

The Connector may use HTTP/1.1 GZIP compression in an attempt to save server bandwidth. The acceptable values for the parameter is "off" (disable compression), "on" (allow compression, which causes text data to be compressed), "force" (forces compression in all cases), or a numerical integer value (which is equivalent to "on", but specifies the minimum amount of data before the output is compressed). If the content-length is not known and compression is set to "on" or more aggressive, the output will also be compressed. If not specified, this attribute is set to "off".

这两个配置是在servere.xml中的Connector部分,第一个配置是指定Tomcat压缩哪些内容,第二个配置是指示Tomcat是否启用压缩,默认是关闭的。所以假设我们要让Tomcat在默认的8080端口上的输出内容进行压缩,我们的配置应该是:

    <Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" 
               redirectPort="8443" compression="on"/>

一旦启用了这个压缩功能后,我们怎么来测试压缩是否有效呢?首先Tomcat是根据浏览器请求头中的accept-encoding来判断浏览器是否支持压缩功能,如果这个值包含有gzip,就表明浏览器支持gzip压缩内容的浏览,所以我们可以用httpclient来写一个这样的简单测试程序

package com.liusoft.dlog4j.test;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;

/**
 * HTTP客户端测试类
 * @author liudong
 */
public class HttpTester {

 /**
  * @param args
  */
 public static void main(String[] args) throws Exception{
  HttpClient http = new HttpClient();  
  GetMethod get = new GetMethod("http://www.dlog.cn/js/prototype.js");
  try{
   get.addRequestHeader("accept-encoding", "gzip,deflate");
   get.addRequestHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toolbar; Maxthon 2.0)");
   int er = http.executeMethod(get);
   if(er==200){
    System.out.println(get.getResponseContentLength());
    String html = get.getResponseBodyAsString();
    System.out.println(html);
    System.out.println(html.getBytes().length);
   }
  }finally{
   get.releaseConnection();
  }
 }

}

执行这个测试程序,看看它所输出的是什么内容,如果输出的是一些乱码,以及打印内容的长度远小于实际的长度,那么恭喜你,你的配置生效了,你会发现你网站的浏览速度比以前快多了。

另外你最好对网站所用的javascript和css也进行压缩:)

分享到:
评论

相关推荐

    Tomcat下,使用gzip压缩数据

    使用gzip压缩,能够减少数据传输大小,加快网页或APP加载速度。很多大站都开启了gzip压缩,不过也有很多网站并没有开启gzip压缩,本文档使用截图和文字的方式详细讲解了压缩数据的配置和过程,希望对您有益!

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

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

    Tomcat多端口域名访问并配置开启gzip压缩方法

    主要介绍了应用Tomcat进行多端口域名访问,并配置开启gzip压缩方法,需要的朋友可以参考下

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

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

    Tomcat配置gzip压缩提高浏览网站的速度

    HTTP 压缩可以大大提高浏览网站的速度,相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量

    如何验证Tomcat Gzip配置是否生效的方法

    我们在使用Tomcat优化配置时,都会开始Tomcat的Gzip压缩功能,配置如下: &lt;Connector port=9080 protocol=HTTP/1.1 connectionTimeout=20000 redirectPort=8443 URIEncoding=UTF-8 useBodyEncodingForURI=...

    Nginx+Tomcat负载均衡

    我们需要在一台机器上跑 2 个不同的 tomcat ,避免出现端口被占用的情况,为了规范统一,我们修改全部tomca端口。分别找到tomcat6的1和2 的conf下的 server.xml。 修改Server端口 找到Server将: 改为 XXXX 在...

    关于JavaScript的gzip静态压缩方法

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

    实战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负载均衡和反向代理的配置与优化 6.1...

    实战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-张宴

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

    extjs整合ssh框架

    公司项目原来由 extjs3+ssh+sql server 构成,现将其转至 extjs4+ssh2+sql server平台,尽量将过程记述供自己...04--加入extjs4的支持文件 配置tomcat的gzip的压缩 05--配置 web.xml,登录验证过滤器和session监听器

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

    (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,...

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

    (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,...

    spring-elfinder:基于spring boot的在线文件管理器系统

    支持zip tar Gzip 的在线解压和压缩文件夹 支持多种文本格式的高亮显示和在线编辑 支持在线文件预览 支持文件夹权限设置 支持国际化 配置 application.yml file-manager: thumbnail: width: 80 # 缩略图宽 ...

    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/...

Global site tag (gtag.js) - Google Analytics