返回顶部
分享到

SpringBoot使用GZIP压缩反回数据问题

java 来源:互联网 作者:佚名 发布时间:2025-04-21 20:23:32 人浏览
摘要

SpringBoot使用GZIP压缩反回数据 1、初识gzip 第一次看到或者说注意到gzip的时候是在做数据爬虫的时候,需要爬取第三方网站的图片,开始写的爬虫有问题,爬到的图片都不能展示,当然跟这个

SpringBoot使用GZIP压缩反回数据

1、初识gzip

第一次看到或者说注意到gzip的时候是在做数据爬虫的时候,需要爬取第三方网站的图片,开始写的爬虫有问题,爬到的图片都不能展示,当然跟这个gzip压缩没关系,但是当时以为是这个东西再作祟,就看了下相关的资料。

2、gzip是什么,可以干什么?

gzip是一种压缩方式,就是对数据进行压缩,使其变得更小,节省硬盘资源。

主要是用来压缩数据的算法,具体实现这里略过。

3、SpringBoot(server)使用gzip压缩

我们的boot应用使用gzip压缩的话,意思就是说在传输的时候对数据进行格gzip编码,浏览器自己会对接收到的数据进行解码。

所以我们在boot应用中使用这个gzip的目的就是为了减少中间过程流量的传输,缩短数据交互的时间。

4、在什么情况下使用gzip然后Http传输数据

我的策略是当数据大于1kb时,我在使用该方式进行传输,当数据比较小的时候使用gzip的话成本比较大,本来数据量不大,有的压缩可能比不压缩还大,所以没有意义。

5、SpringBoot(Tomcat)情况下

使用gzip进行Http传输的配置如下:

yml配置如下:

1

2

3

4

5

6

7

8

9

10

11

12

compression:

  enabled: true

  min-response-size: 1024

  mime-types:

  - image/png

  - image/jpeg

  - image/jpg

  - text/html

  - application/javascript

  - text/css

  - application/octet-stream

  - application/json  

6、使用gzip进行传输的好处(火狐浏览器)

打开浏览器,按F12进入开发者模式,然后点击网络,然后访问自己的Boot应用。

传输的内容大小缩小了,这样的话就是说传输所需的流量肯定会侠少,页面加载速度可能会变快,当加载的数据量达到一定程度时可以看出来,这里测试的数据量比较小。

7、使用gzip的坏处

有利必然有弊端,这里数据量传输虽然是减少了,但是你需要知道的是这个server在反回数据时对数据进行gzip压缩的时候肯定是耗费资源的,浏览器解析的话肯定也是耗费资源的,不过个人感觉这么大(不算大)的数据进行压缩对CPU来说不过是秒秒钟的事情。

8、Http传输中Server的选择

可以在nginx层处理,也可以在tomcat层处理,看自己的需求,但是两个都进行处理的话结果可能会出现问题。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • SpringBoot内嵌Tomcat临时目录问题及解决
    SpringBoot内嵌Tomcat临时目录问题 听说后面上线可能tomcat临时文件夹会被Linux删除,会报找不到错误,现在赶紧记录一下,已被不时之需。 存在
  • SpringBoot使用GZIP压缩反回数据问题

    SpringBoot使用GZIP压缩反回数据问题
    SpringBoot使用GZIP压缩反回数据 1、初识gzip 第一次看到或者说注意到gzip的时候是在做数据爬虫的时候,需要爬取第三方网站的图片,开始写的
  • Java中怎么优雅地处理null值
    假设我们有一个学生对象,以及这个学生对象的 Optional 包装器: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class Student { private Stri
  • SpringBoot实现数据库读写分离的3种方法
    一、数据库读写分离概述 在大型应用系统中,随着访问量的增加,数据库常常成为系统的性能瓶颈。为了提高系统的读写性能和可用性,读
  • SpringBoot启动报错的11个高频问题排查与解决终极
    1. 依赖冲突:NoSuchMethodError 的终极解法 错误现象: java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.isAnnotationInherited 原因分析
  • SpringBoot2.6.x与Swagger3兼容问题及解决方法
    报错: Failed to start bean documentationPluginsBootstrapper; nested exception is java.lang.NullPointerException 解决: ? 如果项目中未引入spring-boot-starter-actuator,
  • Java使用多线程处理未知任务数
    知道任务个数,你可以定义好线程数规则,生成线程数去跑 代码说明: 1.虚拟线程池: 使用 Executors.newVirtualThreadPerTaskExecutor() 创建虚拟线程
  • Java高级-反射&动态代理介绍
    1. 反射 1.1 反射的概述 专业的解释(了解一下): 是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个
  • 使用EasyPoi实现多Sheet页导出的代码
    因多次遇到导出多Sheet页的需求,故记录下来,以备后续参考使用 一、Pom依赖 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 !-- 集成easypoi组件 .导出excel ht
  • idea导入若依项目教程

    idea导入若依项目教程
    IDEA导入若依管理系统 项目官网地址:https://gitee.com/y_project/RuoYi-Vue 前提 系统需求: JDK = 1.8 MySQL = 5.5 Maven = 3.0 redis 必须启动(可以下载一个
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计