前言
记一次请求数据量过大, 导致接口响应速度太慢问题。
http 响应的 gzip 压缩
当服务端对响应做了 gzip 压缩后,header里会添加:Content-Encoding: gzip 用于表明返回结果做了 gzip 压缩。
如果客户端不希望该次请求会被压缩,则可以修改请求的 header 中的 Accept-Encoding,去掉 gzip 即可。
SpringBoot 配置
# 环境配置
server:
# 服务器的HTTP端口,默认为8080
port: 8080
# 开启gzip压缩
compression:
enabled: true
# 允许压缩的响应缓冲区最小字节数
min-response-size: 100KB
注意事项
如果返回的是普通的字符串,min-response-size 配置可以生效。
但是,当返回的是一个自定义的对象时,不管这个对象的大小,默认全部做 gzip 压缩。
经过排查是因为响应的 header 中没有 Content-Length。