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

2025-04-22 05:50

本文主要是介绍SpringBoot使用GZIP压缩反回数据问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教...

SpringBoot使用GZIP压缩反回数据

1、初识gzip

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

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

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

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

3、SpringBoot(server)使用gzip压缩

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

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

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

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

5、SpringBoot(Tomcat)情况下

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

http://www.chinasem.cn

yml配置如下:

  compression:
    enabled: true
    min-response-size: 1024
    mime-types:
    - image/png
    - image/jpeg
    - image/jpg
    - text/html
    - application/Javascript
    - text/css
    - application/octet-streChina编程am
    - application/json   

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

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

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

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

7、使用gzip的坏处

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

8、Http传输中Server的选择

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程China编程(www.chinasem.cn)。

这篇关于SpringBoot使用GZIP压缩反回数据问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154318

相关文章

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本