SpringBoot使用GZIP壓縮反回數(shù)據(jù)問題
SpringBoot使用GZIP壓縮反回數(shù)據(jù)
1、初識gzip
第一次看到或者說注意到gzip的時候是在做數(shù)據(jù)爬蟲的時候,需要爬取第三方網(wǎng)站的圖片,開始寫的爬蟲有問題,爬到的圖片都不能展示,當(dāng)然跟這個gzip壓縮沒關(guān)系,但是當(dāng)時以為是這個東西再作祟,就看了下相關(guān)的資料。
2、gzip是什么,可以干什么?
gzip是一種壓縮方式,就是對數(shù)據(jù)進(jìn)行壓縮,使其變得更小,節(jié)省硬盤資源。
主要是用來壓縮數(shù)據(jù)的算法,具體實現(xiàn)這里略過。
3、SpringBoot(server)使用gzip壓縮
我們的boot應(yīng)用使用gzip壓縮的話,意思就是說在傳輸?shù)臅r候?qū)?shù)據(jù)進(jìn)行格gzip編碼,瀏覽器自己會對接收到的數(shù)據(jù)進(jìn)行解碼。
所以我們在boot應(yīng)用中使用這個gzip的目的就是為了減少中間過程流量的傳輸,縮短數(shù)據(jù)交互的時間。
4、在什么情況下使用gzip然后Http傳輸數(shù)據(jù)
我的策略是當(dāng)數(shù)據(jù)大于1kb時,我在使用該方式進(jìn)行傳輸,當(dāng)數(shù)據(jù)比較小的時候使用gzip的話成本比較大,本來數(shù)據(jù)量不大,有的壓縮可能比不壓縮還大,所以沒有意義。
5、SpringBoot(Tomcat)情況下
使用gzip進(jìn)行Http傳輸?shù)呐渲萌缦拢?/p>
yml配置如下:
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進(jìn)行傳輸?shù)暮锰?火狐瀏覽器)
打開瀏覽器,按F12進(jìn)入開發(fā)者模式,然后點擊網(wǎng)絡(luò),然后訪問自己的Boot應(yīng)用。
傳輸?shù)膬?nèi)容大小縮小了,這樣的話就是說傳輸所需的流量肯定會俠少,頁面加載速度可能會變快,當(dāng)加載的數(shù)據(jù)量達(dá)到一定程度時可以看出來,這里測試的數(shù)據(jù)量比較小。
7、使用gzip的壞處
有利必然有弊端,這里數(shù)據(jù)量傳輸雖然是減少了,但是你需要知道的是這個server在反回數(shù)據(jù)時對數(shù)據(jù)進(jìn)行g(shù)zip壓縮的時候肯定是耗費資源的,瀏覽器解析的話肯定也是耗費資源的,不過個人感覺這么大(不算大)的數(shù)據(jù)進(jìn)行壓縮對CPU來說不過是秒秒鐘的事情。
8、Http傳輸中Server的選擇
可以在nginx層處理,也可以在tomcat層處理,看自己的需求,但是兩個都進(jìn)行處理的話結(jié)果可能會出現(xiàn)問題。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java中常用數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)類 Collection和Map
下面小編就為大家?guī)硪黄獪\談Java中常用數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)類 Collection和Map。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09詳解Maven profile配置管理及激活profile的幾種方式
這篇文章主要介紹了詳解Maven profile配置管理及激活profile的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Java微信公眾平臺開發(fā)(9) 關(guān)鍵字回復(fù)以及客服接口實現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺開發(fā)第九步,關(guān)鍵字回復(fù)以及客服接口實現(xiàn),以及遇到該公眾號暫時無法提供服務(wù)的解決方案,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04Java遠(yuǎn)程調(diào)用組件Feign技術(shù)使用詳解
Feign是Netflix公司開發(fā)的一個聲明式的REST調(diào)用客戶端; Ribbon負(fù)載均衡、 Hystrⅸ服務(wù)熔斷是我們Spring Cloud中進(jìn)行微服務(wù)開發(fā)非常基礎(chǔ)的組件,在使用的過程中我們也發(fā)現(xiàn)它們一般都是同時出現(xiàn)的,而且配置也都非常相似2022-11-11Java Benchmark 基準(zhǔn)測試的實例詳解
這篇文章主要介紹了Java Benchmark 基準(zhǔn)測試的實例詳解的相關(guān)資料,這里提供實例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08