Spring Boot 启用Gzip压缩

Posted LarryZeal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot 启用Gzip压缩相关的知识,希望对你有一定的参考价值。

两点需要注意

1、需要在application.properties里启用压缩,并设置压缩支持的格式(默认支持text/html等,但不支持application/json)

server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain

2、默认情况下,仅会压缩2048字节以上的内容

#默认就是2048 byte
server.compression.min-response-size=2048

 

以上内容,详见 org.springframework.boot.context.embedded.Compression

以及 org.springframework.boot.autoconfigure.web.ServerProperties

 

另外,这个设置本身是由servlet container提供的,所以,也可以在tomcat等的设置里找到。

对tomcat来说,在server.xml 的HTTP/1.1的connector节点中设置:

<!-- 这里的压缩设置,是默认的 -->
<Connector port="8888" protocol="HTTP/1.1" 
               connectionTimeout="21000" 
               redirectPort="28080" 
               URIEncoding="UTF-8"
               compression="on"  
               compressionMinSize="50"
               noCompressionUserAgents="gozilla, traviata"  
               compressionMinSize = “2048”
               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />

 

ps:以上是对于最新的Spring Boot来说的,如果是旧版本的(

 

参考:

Spring 官方指导

使用Tomcat的gzip功能(压缩请求)

tomcat配置gzip压缩compressionMinSize选项无效

Understanding Gzip Compression in Spring Boot ,Angular Java Application

 

以上是关于Spring Boot 启用Gzip压缩的主要内容,如果未能解决你的问题,请参考以下文章

将 GZIP 压缩与 Spring Boot/MVC/JavaConfig 与 RESTful 结合使用

Spring gzip 与 Tomcat gzip

Spring Boot gzip 压缩响应的大小小于配置的 min-response-size

Spring Boot + Gzip 压缩超大 JSON 对象,传输大小减少一半!

无法启用压缩(deflate/gzip)

带有 http/2 和 ssl 的嵌入式 Tomcat 的 Spring Boot 2.1,gzip 不起作用