tomcat设置gzip

强颜欢笑 提交于 2019-12-02 06:30:33

 

问题一

对大于1KB的json请求进行gzip压缩,json为原文件

1.创建原始文件

 

 

2.设置

在apache-tomcat-8.5.9/conf/server.xml文件中,修改节点如下:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="200000"
               redirectPort="8443"
               compression="on"
               compressionMinSize="1024"
               compressableMimeType="application/json"/>

3.参数说明

compression="on" 开启压缩

compressionMinSize="1024"大于1KB的文件才进行压缩

compressableMimeType="application/json",MIME类型列表,例如:json为application/json。

4.确定MIME类型

方法一:MIM在apache-tomcat-8.5.9/conf/web.xml有一个设置列表,可以查看

<mime-mapping>
        <extension>json</extension>
        <mime-type>application/json</mime-type>
    </mime-mapping>

方法二:

 

 

 

5.确定是否gzip压缩

在浏览器输入http://localhost:8080/test-gzip/tileset.json

5.1在response headers里有Content-Encoding:gzip(告诉浏览器需要gzip解压)

5.2文件内容

 

看上去获取到的json没有用gzip压缩(其实是浏览器已经解压过,没有办法看到没有解压的文件)

没有办法从文件上来验证是否压缩与解压。

 

问题二

对大于1KB的.terrain后缀文件请求,进行gzip压缩。

1.设置

1.1在apache-tomcat-8.5.9/conf/web.xml,增加映射关系

<mime-mapping>
        <extension>terrain</extension>
        <mime-type>application/octet-stream</mime-type>
</mime-mapping>

 

1.2在apache-tomcat-8.5.9/conf/server.xml文件中,修改节点如下:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="200000"
               redirectPort="8443"
               compression="on"
               compressionMinSize="1024"
               compressableMimeType="application/octet-stream"/>

 

2.测试

在浏览器输入http://localhost:8080/test-gzip/0.terrain

 

 

延申:

使用cesiumlab生成已经经过gzip压缩过的地形,就没办法通过设置tomcat的gzip了,因为tomcat会再次压缩一次(相当于压缩两次)。只能设置response headers标识

例如java代码里加入

response.setHeader("Content-Encoding", "gzip");

例如加过滤器(还没测试过)

https://www.jianshu.com/p/5cc7d87c19f0

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!