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

Posted

技术标签:

【中文标题】Spring Boot gzip 压缩响应的大小小于配置的 min-response-size【英文标题】:Springboot gzip compressing responses having size less than min-response-size configured 【发布时间】:2019-03-26 05:40:07 【问题描述】:

我正在尝试在我的 Springboot Rest API 中实现 Gzip 响应压缩

我在 application.properties 中使用以下配置

# Enable response compression
server.compression.enabled=true

# The comma-separated list of mime types that should be compressed
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json

# Compress the response only if the response size is at least 10KB
server.compression.min-response-size=10240

响应压缩正在发生,但奇怪的是它也是大小低至 1KB 或 500B 的压缩响应,它不应该像 server.compression.min-response-size=10240

【问题讨论】:

fyi,根据documentation,你也可以写 10KB 而不是 10240 【参考方案1】:

您确定查看的是接收到的文件的未压缩大小,而不是实际发送的压缩大小(如浏览器网络选项卡中所示)?

Web 服务器将检查磁盘上的文件大小是否超过 'server.compression.min-response-size' 并压缩它 - 这可能导致压缩文件低于设置的值?

一旦 CPU 完成了压缩文件的工作,发送未压缩版本就没有什么意义了。

【讨论】:

以上是关于Spring Boot gzip 压缩响应的大小小于配置的 min-response-size的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 启用Gzip压缩

Java如何在spring boot中启用gzip压缩并验证其生效

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

在 Spring Boot REST 应用程序中处理 gzipped 请求

Spring gzip 与 Tomcat gzip

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