0
点赞
收藏
分享

微信扫一扫

SpringBoot - 前后端大数据压缩传输 Gzip 解决方案(自动版)



为了减少数据在网络中的传输量,从而减少传输时长,增加用户体验,浏览器大都是支持Gzip压缩技术的,http的请求头 Accept-Encoding:gzip, deflate 就表示这次请求可以接受Gzip压缩后的数据,图片不要进行压缩,因为图片完全可以在项目开发中使用压缩后的图片。压缩会有一定的CPU性能损耗。


1、在 application.yml 中加入如下配置

server:
compression:
enabled: true
mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
  • 压缩后文件大概有5-8倍左右的差距,能大大减少网络传输量,页面加载速度加快。
  • 其实这里最好放在统一网关里,这样就不需要每一个 SpringBoot 都去加这个配置。

2、Tomcat开启Gzip压缩

tomcat中使用gzip需要进行配置,在server.xml中,在Connector标签中加入如下属性

compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/css,text/javascript"

3、下面我们对比一下未开启gzip压缩和开启gzip压缩的传输量

SpringBoot - 前后端大数据压缩传输 Gzip 解决方案(自动版)_SpringBoot

  • 首先对于 Chrome 浏览器,自动请求加入了 gzip 信息(Request Headers里面可以看到前端已经支持了接受gzip压缩后的json)

SpringBoot - 前后端大数据压缩传输 Gzip 解决方案(自动版)_前后端大数据传数_02

  • 未开启gzip压缩的截图,可以看到json大小为7.0MB

SpringBoot - 前后端大数据压缩传输 Gzip 解决方案(自动版)_Gzip_03

  • 开启gzip压缩后的截图,可以看到json的大小压缩成了1.2MB  大概压缩了5.8倍

注意事项

  • 需要用 GZIP 必须是 GET 请求,以后这中返回数据量大的接口,只要不涉及到敏感信息,务必使用GET请求,这样可以省好多事。


举报

相关推荐

0 条评论