原理简介

        HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率也很高。 

配置方法

Tomcat5.0以后的版本是支持对输出内容进行压缩的,使用的是gzip压缩格式 。
修改server.xml

<Connector port="8080" protocol="HTTP/1.1"
      connectionTimeout="20000"
        enableLookups="false"
          redirectPort="8443"

          compression="on"

          compressionMinSize="50"
        noCompressionUserAgents="gozilla, traviata"
      compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
/>

从上面节点的属性可以看出,要使用gzip压缩功能,你需要在Connector节点中加上如下属性

    • compression="on" 打开压缩功能
    • compressionMinSize="50" 启用压缩的输出内容大小,默认为2KB
    • noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩
    • compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩

测试方法

启用了TOMCAT这个压缩功能后,我们如何来测试压缩是否有效呢?
首先Tomcat是根据浏览器请求头中的accept-encoding来判断浏览器是否支持压缩功能,如果这个值包含有gzip,就表明浏览器支持gzip压缩内容的浏览,我们可以用两种方法来验证压缩是否生效。

通过查看服务器端图片大小和firebug出现的图片大小比较。

调整连接器connector的并发处理能力

参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
maxThreads        #客户请求最大线程数
minSpareThreads   #Tomcat初始化时创建的 socket 线程数
maxSpareThreads   #Tomcat连接器的最大空闲 socket 线程数
enableLookups     #若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort      #在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount     #监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads  )
connectionTimeout #连接超时
minProcessors     #服务器创建时的最小处理线程数
maxProcessors     #服务器同时最大处理线程数
URIEncoding       #URL统一编码
compression       #打开压缩功能   
compressionMinSize   #启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType #压缩类型
connectionTimeout #定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

Tomcat 开启Gzip压缩的更多相关文章

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

    使用gzip压缩可以减少数据传输大小,加快网页加载速度.很多大站都开启了gzip压缩,不过也有很多网站并没有开启gzip压缩,上次看了一篇文章说开启gzip压缩后对搜索引擎不友好,但从带宽和流量的角度 ...

  2. Nginx 开启gzip 压缩

    随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢? gzip(GNU-ZIP)是一种压缩技术. 经过gz ...

  3. 【转载】HttpWebRequest开启gzip压缩简介

    在用HttpWebRequest对象时,一般我们都没有开启gzip压缩,如果服务端返回的数据比较大,这是我们需要开启gzip压缩,怎么开启呢? 1.给HttpWebRequest对象,添加如下Head ...

  4. IIS7.5开启GZip压缩

    在IIS7.5选择要开启GZip压缩的网站,在功能视图中找到并双击"压缩"图标,在压缩界面中钩选"启用静态内容压缩"和"启用动态内容压缩", ...

  5. 修改Apache配置文件开启gzip压缩传输

    转自:http://down.chinaz.com/server/201202/1645_1.htm 最近无事研究一些Web的优化,用工具page speed检测网站时发现还没有开启gzip压缩,于是 ...

  6. IIS6.0开启gzip压缩(来自百度)

    IIS6.0开启gzip压缩 | 更新:2012-08-10 10:29 1 2 3 4 5 分步阅读 开启gzip可以极大的加速网站.有时压缩比率高达80%,近来测试了一下,最少都有40%以上,还是 ...

  7. Nginx开启gzip压缩功能

    在Nginx安装完成之后,我们可以开启Gzip压缩功能,这里Nginx默认只能对text/html类型的文件进行压缩.下面的指令为开启Gzip的指令: gzip on; gzip_http_versi ...

  8. WIN2003服务器IIS下如何开启GZIP压缩

    在上一篇文章黑客流谈到了关于网页打开速度对SEO的影响,其中提到了网页开启Gzip压缩的好处,接下来我来和大家分享一下WINDOWS系统IIS服务器下如何开启Gzip压缩. 首先我们来了解一下什么是G ...

  9. apache 配置静态文件缓存和开启gzip压缩

    1,设置文件静态缓存3天: 在httpd.conf 里添加如下代码: #文件静态缓存配置 <IfModule expires_module> #打开缓存 ExpiresActive on ...

随机推荐

  1. hi3531spi flash启动和bootrom启动的对比

    a

  2. Android View绘制回调方法流程

    Android中View的性命周期,挪用 invalidate() 战 requestLayout() 会触收哪些方式,一张图就可以讲解的很详细. 该图确切一看便特别很是清楚.让人简略的懂得View的 ...

  3. javascript 获取滚动条距离顶部的位置(兼容所有的)。

    function getScrollTop() { var scrollPos; if (window.pageYOffset) { scrollPos = window.pageYOffset; } ...

  4. FusionCharts饼图中label值太长怎么解决

    FusionCharts饼图中label值太长怎么解决 1.使用hoverText属性 <?xml version="1.0" encoding="UTF-8&qu ...

  5. Linux显示查看您拥有的仓库

    Linux显示查看您拥有的仓库 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ yum repolist all repolist: 0

  6. ASP.NET 页面双向静态化

    而我们预期的结果应该如下图,实际只请求两次. 用301重定向可以解决该循环请求产生的问题. OK, let's begin. 本文的Demo和Source是基于上一篇的,如果下面的一些文件或文件夹没有 ...

  7. 芝麻HTTP:Flask的安装

    Flask是一个轻量级的Web服务程序,它简单.易用.灵活,这里主要用来做一些API服务. 1. 相关链接 GitHub:https://github.com/pallets/flask 官方文档:h ...

  8. css设置居中的方案总结

    回想一下,自己平时项目里遇到的比较多的就是css如何让元素居中显示,其实差不多每种情况都遇到过,所采用的方法也都各有利弊,下面对这些方法来做个概括,对其中的坑点,也会一一指出来,希望能给遇到问题的同学 ...

  9. Think with Google 京东如何玩转TensorFlow?

    2018 年 2 月 6 日,Think with Google 年度峰会在北京召开.在本次峰会上,我们分享了 Google 和我们的合作伙伴在 AI (人工智能) 方面取得的成绩,探讨如何利用人工智 ...

  10. Keras官方中文文档:序贯模型

    快速开始序贯(Sequential)模型 序贯模型是多个网络层的线性堆叠,也就是"一条路走到黑". 可以通过向Sequential模型传递一个layer的list来构造该模型: f ...