欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot中開啟GZIP壓縮的方式

 更新時間:2025年04月21日 09:20:42   作者:無名指的等待712  
這篇文章主要介紹了SpringBoot中開啟GZIP壓縮的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

首先GZIP壓縮有哪些好處了解一下先:

  • 1.減小響應體大小
  • 2.提升頁面的加載速度
  • 3.節(jié)省帶寬成本
  • 4.優(yōu)化移動端的體驗(主要是一般在移動端設備上,網(wǎng)絡帶寬通常是比較慢的,啟用可以有效提升速度)
  • 5.更有效的緩存利用
  • 6.改善SEO搜索引擎優(yōu)化

開啟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的響應頭

  • 開啟GZIP后的響應頭

這里可能你目前響應體返回的內(nèi)容短的時候你看不出來,但是一旦響應較長的內(nèi)容,你就能看到響應時間和渲染時間明顯的加速

第二種

如果你想進行更精細的控制,可以通過編程的方式來啟用和配置 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 壓縮,通常在生產(chǎn)環(huán)境中使用 Nginx 或 Apache 等反向代理服務器進行 GZIP 壓縮更為高效,因為反向代理通常比應用服務器更擅長處理靜態(tài)內(nèi)容的壓縮。

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

總結

  • 默認情況下,Spring Boot 不啟用 GZIP 壓縮。
  • 你可以通過在 application.propertiesapplication.yml 中配置來啟用它。
  • 啟用 GZIP 后,只有當響應體的大小大于指定的 min-response-size 時,才會進行壓縮,默認值是 2048 字節(jié)(2 KB)。

強調(diào)開啟GZIP的好處有哪些?

1.減小響應體大小

  • 壓縮數(shù)據(jù):GZIP 壓縮能夠顯著減小響應體的大小,尤其是對于 JSON、HTML、CSS、JavaScript 等文本格式的數(shù)據(jù)。通常,文本數(shù)據(jù)能被壓縮到原來的 20% 到 30% 左右,甚至更多,這有助于節(jié)省帶寬。
  • 減少數(shù)據(jù)傳輸:壓縮后的數(shù)據(jù)更小,意味著從服務器到客戶端傳輸?shù)臄?shù)據(jù)量減少,這對于網(wǎng)絡帶寬有限的環(huán)境尤其重要。

2. 提升頁面加載速度

  • 更快的加載速度:響應體變小后,傳輸時間減少,客戶端(如瀏覽器)能夠更快地獲取到數(shù)據(jù),從而加快頁面渲染或 API 請求的響應速度。
  • 改善用戶體驗:壓縮后的響應能夠減少頁面加載時間,提升用戶體驗,尤其是在移動端或網(wǎng)絡條件不佳的環(huán)境中。

3. 節(jié)省帶寬成本

  • 降低帶寬消耗:對于需要處理大量請求的服務器,GZIP 壓縮能夠有效減少帶寬消耗,從而減少服務器的帶寬成本。
  • 適應大流量應用:在高并發(fā)的情況下,壓縮能夠緩解帶寬壓力,提高服務的可伸縮性。

4. 優(yōu)化移動端體驗

  • 改善移動網(wǎng)絡條件下的性能:在移動設備上,網(wǎng)絡帶寬通常較慢,啟用 GZIP 壓縮可以顯著提升應用在 3G/4G 等不穩(wěn)定網(wǎng)絡環(huán)境下的響應速度。
  • 減少流量使用:移動設備的流量通常有限,壓縮后的響應能夠減少流量消耗,有利于用戶節(jié)省流量。

5. 更有效的緩存利用

  • 優(yōu)化緩存策略:在某些場景下,壓縮后的響應體能更好地適應 HTTP 緩存機制。尤其是通過緩存代理(如 CDN 或緩存服務器)時,壓縮響應能幫助緩存內(nèi)容更有效地傳輸并存儲。
  • Vary 頭部支持:如果使用 Vary 頭部來處理不同的請求,例如,響應的內(nèi)容可能會因客戶端的 Accept-Encoding 請求頭而有所不同。啟用 GZIP 后,緩存代理可以更精確地緩存不同版本的響應。

6. 減少服務器負擔

  • 減輕應用服務器壓力:雖然壓縮會增加服務器端的 CPU 負擔(因為需要對響應體進行壓縮),但它能夠通過減小傳輸數(shù)據(jù)量來減少帶寬壓力,特別是在高流量的場景下,服務器的網(wǎng)絡帶寬瓶頸可能比 CPU 成為瓶頸更早,從而間接優(yōu)化了服務器性能。
  • 適用于大流量應用:對于高并發(fā)、大流量的應用,GZIP 壓縮可以幫助有效降低帶寬需求,從而提高整體服務的性能和穩(wěn)定性。

7. 改善 SEO 和 Google PageSpeed

  • 優(yōu)化 SEO(搜索引擎優(yōu)化):雖然 GZIP 壓縮本身并不會直接影響 SEO,但壓縮可以加速網(wǎng)頁加載時間,搜索引擎(如 Google)通常會將加載速度作為排名的一項指標。因此,啟用 GZIP 壓縮可能間接地幫助提高網(wǎng)站的 SEO 排名。
  • 提升 Google PageSpeed:Google PageSpeed 工具通常建議開啟壓縮,以提高頁面性能評分。啟用 GZIP 壓縮有助于提升 PageSpeed 評分,優(yōu)化用戶體驗。

8. 支持現(xiàn)代瀏覽器的自動解壓縮

  • 瀏覽器支持:現(xiàn)代瀏覽器(如 Chrome、Firefox、Safari 等)都支持 GZIP 解壓縮??蛻舳嗽谑盏綁嚎s的響應后,瀏覽器會自動進行解壓并呈現(xiàn)數(shù)據(jù),不需要前端開發(fā)者額外處理。
  • 無需手動解壓:對于客戶端來說,GZIP 解壓縮是自動的,不需要開發(fā)者介入,簡化了開發(fā)工作。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Kafka消費客戶端協(xié)調(diào)器GroupCoordinator詳解

    Kafka消費客戶端協(xié)調(diào)器GroupCoordinator詳解

    這篇文章主要為大家介紹了Kafka消費客戶端協(xié)調(diào)器GroupCoordinator使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Mybatis 插件原理解析

    Mybatis 插件原理解析

    mybatis是一款優(yōu)秀的ORM開源框架,這個框架具有極強的靈活性,本文再次給大家介紹Mybatis 插件原理,感興趣的朋友一起看看吧
    2021-10-10
  • 使用Java手搓一個控制臺進度條打印工具

    使用Java手搓一個控制臺進度條打印工具

    這篇文章主要為大家詳細介紹了如何使用Java手搓一個控制臺進度條打印工具,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-04-04
  • java和matlab畫多邊形閉合折線圖示例講解

    java和matlab畫多邊形閉合折線圖示例講解

    由于要將“哈密頓回路問題(TSP)”的求解中間結果表示出來,查了一下使用程序畫多邊形圖形。現(xiàn)在在總結一下,這個圖是“由給定節(jié)點首尾相連的”閉合多邊形
    2014-02-02
  • SpringBoot下載文件的正確解法方式

    SpringBoot下載文件的正確解法方式

    這篇文章主要給大家介紹了關于SpringBoot下載文件的正確解法方式,SpringBoot是一款流行的框架,用于開發(fā)Web應用程序,在使用SpringBoot構建Web應用程序時,可能需要實現(xiàn)文件下載的功能,需要的朋友可以參考下
    2023-08-08
  • Java實現(xiàn)線程通信的案例講解

    Java實現(xiàn)線程通信的案例講解

    所謂線程通信就是線程間相互發(fā)送數(shù)據(jù),線程通信通常通過共享一個數(shù)據(jù)的方式實現(xiàn)。本文將通過案例詳解Java中線程通信的實現(xiàn),感興趣的可以了解一下
    2022-05-05
  • SpringBoot集成validation校驗參數(shù)遇到的坑

    SpringBoot集成validation校驗參數(shù)遇到的坑

    這篇文章主要介紹了SpringBoot集成validation校驗參數(shù)遇到的坑,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 全面了解OAuth?2.0四種授權方式金三銀四無懼面試

    全面了解OAuth?2.0四種授權方式金三銀四無懼面試

    這篇文章主要介紹了全面了解OAuth?2.0四種授權方式金三銀四無懼面試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • jdk15的安裝與配置全過程記錄

    jdk15的安裝與配置全過程記錄

    這篇文章主要給大家介紹了關于jdk15的安裝與配置,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Spring Security OAuth2集成短信驗證碼登錄以及第三方登錄

    Spring Security OAuth2集成短信驗證碼登錄以及第三方登錄

    這篇文章主要介紹了Spring Security OAuth2集成短信驗證碼登錄以及第三方登錄,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04

最新評論