Tomcat启用Gzip压缩

Gzip(GNU zip)是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。Gzip是一种网络上使用非常普遍的数据压缩格式,大流量的web站点常常使用Gzip压缩技术来减少网络文件传输时间,以增强用户体验。

Tomcat5.0以后的版本提供了对输出内容进行Gzip压缩的支持,该功能默认是关闭的


1、启用

启用Gzip压缩,需要修改tomcat的配置文件 ${TOMCAT_HOME}/conf/server.xml

因为web站点从服务器传输超文本到本地浏览器的过程使用的Http协议,所以我们需要在HTTP Connector(HTTP连接器)上进行配置

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

在该Connector 上设置compression=”on”开启压缩支持(关闭为off,默认关闭)

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

2、设置

开启压缩的同时,我们还可以对压缩的参数进行配置

# 进行压缩的最小值,低于该值的文件不进行压缩(单位B,默认2048,即默认2k)
compressionMinSize="2048"

# 不需要进行压缩的浏览器,当浏览器类型为指定的类型时,不进行压缩
noCompressionUserAgents="gozilla,traviata"

# 需要压缩的文件类型(多个类型以逗号分隔)
compressableMimeType="text/html,text/xml,image/png,text/css"

3、示例:

我们有样式文件bootstrap.css,该文件在压缩前约有144KB

这里写图片描述

修改server.xml,启用Gzip压缩

<Connector port="8080" protocol="HTTP/1.1" 
    connectionTimeout="20000"
    redirectPort="8443" 
    compression="on"
    compressionMinSize="2048"
    noCompressionUserAgents="gozilla,traviata"
    compressableMimeType="text/css" />

重启Tomcat服务器后,能够看到文件大小被压缩到了21.6kB。同时因为文件变小了,所以下载耗费的时间也得到了缩短

这里写图片描述

4、是否启用了Gzip

有些时候我们可能会想知道服务器到底有没有开启Gzip压缩,这个时候我们可以直接查看响应文件的文件头Content-Encoding 部分。

未启用Gzip压缩时的Response Headers

Tomcat启用Gzip压缩_第1张图片

启用Gzip压缩后的Response Headers

Tomcat启用Gzip压缩_第2张图片

对比两者,很明显能够看到启用Gzip压缩后的响应头多了Content-Encoding:gzip

你可能感兴趣的:(优化)