Gzip壓縮 與 http

壓縮文件的目的就是為了把傳輸文件的體積減小凤粗,加快傳輸速度。http 傳輸中開啟 gZip的目的也是如此

傳輸壓縮文件給別人時候一般都帶著后綴名 .rar, .zip之類今豆,對方在拿到文件后根據(jù)相應(yīng)的后綴名選擇不同的解壓方式然后去解壓文件嫌拣。我們在 http 傳輸時候解壓文件的這個角色的扮演者就是我們使用的瀏覽器

  • 服務(wù)端發(fā)送的數(shù)據(jù)可以配置一個 Content-Encoding 字段,這個字段用于說明數(shù)據(jù)的壓縮方法

  • 客戶端在接受到返回的數(shù)據(jù)后去檢查對應(yīng)字段的信息呆躲,然后根據(jù)對應(yīng)的格式去做相應(yīng)的解碼异逐。客戶端在請求時歼秽,可以用 Accept-Encoding 字段說明自己接受哪些壓縮方法应役。

在網(wǎng)上看到最多的也是諸如 nginx 開啟 gZip 配置之類的文章,但是現(xiàn)在前端流行 spa 應(yīng)用, 用 react, vue 之類的框架時候總伴隨這一套自己的腳手架,一般用 webpack 作為打包工具燥筷,其中可以配置插件 如compression-webpack-plugin 可以讓我們把生成文件進(jìn)行 gZip 等壓縮并生成對應(yīng)的壓縮文件箩祥,而我們應(yīng)用在構(gòu)架時候有可能也會在服務(wù)區(qū)和前端文件中放置一層 node 應(yīng)用來進(jìn)行接口鑒權(quán)和文件轉(zhuǎn)發(fā)。nodejs中我們熟悉的express 框架中也有一個compression 中間件肆氓,可以開啟gZip,

NGINX壓縮有壓縮等級1-10袍祖,如果這個壓縮等級越高,服務(wù)器要壓縮很久才返回數(shù)據(jù)谢揪,反而會損耗CPU和時間〗堵現(xiàn)在的應(yīng)用都會使用spa應(yīng)用捐凭,文件都是打包生成的,所以webpack中打包生成高壓縮等級的文件凳鬓,作為靜態(tài)資源存放在服務(wù)器上茁肠,接收到請求后把壓縮文件返回回來,是一種更好的解決方式缩举。

const CompressionWebpackPlugin = require('compression-webpack-plugin');
?
webpackConfig.plugins.push(
 new CompressionWebpackPlugin({
 asset: '[path].gz[query]',
 algorithm: 'gzip',
 test: new RegExp('\\.(js|css)/pre>),
 threshold: 10240,
 minRatio: 0.8
 })
) // 壓縮使用的是 zlib 庫垦梆,而 zlib 分級來說,默認(rèn)是 6 仅孩,最高的級別就是9

服務(wù)端怎么找到這些文件

壓縮文件會產(chǎn)生index.css, index.js的壓縮文件托猩,在服務(wù)端簡單處理可以判斷這兩個請求然后給予相對應(yīng)的壓縮文件。以 nodeexpress 為例

...
app.get(['/index.js','/index.css'], function (req, res, next) {
 req.url = req.url + '.gz'
 res.set('Content-Encoding', 'gzip')
 res.setHeader("Content-Type", generateType(req.path)) // 這里要根據(jù)請求文件設(shè)置content-type
 next()
})

圖片之類文件則不會被 gzip 壓縮太多辽慕,因?yàn)樗鼈円呀?jīng)內(nèi)置了一些壓縮京腥,一些文件(比如一些已經(jīng)被壓縮的像.zip文件那種)再去壓縮可能會讓生成的文件體積更大一些。當(dāng)然已經(jīng)很小的文件也沒有去壓縮的必要了溅蛉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末公浪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子船侧,更是在濱河造成了極大的恐慌因悲,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勺爱,死亡現(xiàn)場離奇詭異晃琳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)琐鲁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門卫旱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人围段,你說我怎么就攤上這事顾翼。” “怎么了奈泪?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵适贸,是天一觀的道長。 經(jīng)常有香客問我涝桅,道長拜姿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任冯遂,我火速辦了婚禮蕊肥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛤肌。我一直安慰自己壁却,他們只是感情好批狱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著展东,像睡著了一般赔硫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盐肃,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天卦停,我揣著相機(jī)與錄音,去河邊找鬼恼蓬。 笑死,一個胖子當(dāng)著我的面吹牛僵芹,可吹牛的內(nèi)容都是我干的处硬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼拇派,長吁一口氣:“原來是場噩夢啊……” “哼荷辕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起件豌,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤疮方,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茧彤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骡显,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年曾掂,在試婚紗的時候發(fā)現(xiàn)自己被綠了惫谤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡珠洗,死狀恐怖溜歪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情许蓖,我是刑警寧澤蝴猪,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站膊爪,受9級特大地震影響自阱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜米酬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一动壤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧淮逻,春花似錦琼懊、人聲如沸阁簸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赏淌。三九已至再膳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饶米,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工车胡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留檬输,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓匈棘,卻偏偏與公主長得像丧慈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子主卫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 本文是《圖解HTTP》讀書筆記的第二篇逃默,主要包括此書的第六章內(nèi)容,因?yàn)榈诹碌膬?nèi)容較多簇搅,而且比較重要完域,所以單獨(dú)寫為...
    lijiankun24閱讀 1,357評論 0 6
  • 一、壓縮算法 1.zip 以下參考他發(fā)明了 zip 壓縮格式瘩将,功成名就之際死于墮落壓縮大戰(zhàn)真相 轉(zhuǎn)載自2004.1...
    合肥黑閱讀 5,877評論 0 5
  • 本文整理自MIN飛翔博客 [1] 1. 概念 協(xié)議是指計算機(jī)通信網(wǎng)絡(luò)中兩臺計算機(jī)之間進(jìn)行通信所必須共同遵守的規(guī)定或...
    HoyaWhite閱讀 2,659評論 2 20
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時吟税,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,249評論 0 9
  • 瑋蓮 歲月何曾老過 不過是把記憶填滿 童年的真 青春的澀 中年的辛…… 回望的領(lǐng)悟 歲月的刀 刻下記憶的痕 怕迷途...
    驕陽下的一朵蓮閱讀 520評論 7 12