java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot开启GZIP压缩

SpringBoot中开启GZIP压缩的方式

作者:无名指的等待712

这篇文章主要介绍了SpringBoot中开启GZIP压缩的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

首先GZIP压缩有哪些好处了解一下先:

开启GZIP压缩方式

第一种

server:
  compression:
    enabled: true
    min-response-size: 1024  # 只有响应体大于 1KB 时才压缩
    mime-types: # 下面的是响应体的格式是这些的时候会压缩
      - application/json
      - application/xml
      - text/html
      - text/plain
      - text/css
      - application/javascript

这里可能你目前响应体返回的内容短的时候你看不出来,但是一旦响应较长的内容,你就能看到响应时间和渲染时间明显的加速

第二种

如果你想进行更精细的控制,可以通过编程的方式来启用和配置 GZIP 压缩。

例如,使用 WebMvcConfigurer 来自定义压缩策略:

import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public ServletRegistrationBean<Filter> compressionFilter() {
        // 可以自定义压缩逻辑的 Filter(可选)
        Filter compressionFilter = new GzipFilter();
        ServletRegistrationBean<Filter> registrationBean = new ServletRegistrationBean<>(compressionFilter);
        registrationBean.addUrlPatterns("/api/*"); // 指定哪些 URL 需要压缩
        return registrationBean;
    }
}

第三种

尽管 Spring Boot 可以在应用层进行 GZIP 压缩,通常在生产环境中使用 Nginx 或 Apache 等反向代理服务器进行 GZIP 压缩更为高效,因为反向代理通常比应用服务器更擅长处理静态内容的压缩。

http {
    gzip on;
    gzip_types application/json application/xml text/html text/plain text/css application/javascript;
    gzip_min_length 1024;
}

总结

强调开启GZIP的好处有哪些?

1.减小响应体大小

2. 提升页面加载速度

3. 节省带宽成本

4. 优化移动端体验

5. 更有效的缓存利用

6. 减少服务器负担

7. 改善 SEO 和 Google PageSpeed

8. 支持现代浏览器的自动解压缩

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文