資料來源 : 小林coding
小林官方網(wǎng)站?:?小林coding (xiaolincoding.com)
如何減少 HTTP 響應(yīng)的數(shù)據(jù)大小?
對(duì)于 HTTP 的請(qǐng)求和響應(yīng),通常 HTTP 的響應(yīng)的數(shù)據(jù)大小會(huì)比較大,也就是服務(wù)器返回的資源會(huì)比較大。
于是,我們可以考慮對(duì)響應(yīng)的資源進(jìn)行壓縮,這樣就可以減少響應(yīng)的數(shù)據(jù)大小,從而提高網(wǎng)絡(luò)傳輸?shù)男省?/p>
壓縮的方式一般分為 2種,分別是:
- 無損壓縮
- 有損壓縮
無損壓縮
無損壓縮是指資源經(jīng)過壓縮后,信息不被破壞,還能完全恢復(fù)到壓縮前的原樣,適合用在文本文件、程序可執(zhí)行文件、程序源代碼。
首先,我們針對(duì)代碼的語法規(guī)則進(jìn)行壓縮,因?yàn)橥ǔ4a文件都有很多換行符或者空格,這些是為了幫助程序員更好的閱讀,但是機(jī)器執(zhí)行時(shí)并不要這些符,把這些多余的符號(hào)給去除掉。
接下來,就是無損壓縮了,需要對(duì)原始資源建立統(tǒng)計(jì)模型,利用這個(gè)統(tǒng)計(jì)模型,將常出現(xiàn)的數(shù)據(jù)用較短的進(jìn)制比特序列表示,將不常出現(xiàn)的數(shù)據(jù)用較長的二進(jìn)制比特序列表示,生成二進(jìn)制比特序列一般是「霍夫曼編碼」算法。
gzip 就是比較常見的無損壓縮??蛻舳酥С值膲嚎s算法,會(huì)在 HTTP 請(qǐng)求中通過頭部中的 Accept-Encoding 字段告訴服務(wù)器:
Accept-Encoding:gzip,deflate,br
服務(wù)器收到后,會(huì)從中選擇一個(gè)服務(wù)器支持的或者合適的壓縮算法,然后使用此壓縮算法對(duì)響應(yīng)資源進(jìn)行壓縮,最后通過響應(yīng)頭部中的 Content-Encoding 字段告訴客戶端該資源使用的壓縮算法。
Content-Encoding:gzip
gzip 的壓縮效率相比 Google 推出的 Broti 算法還是差點(diǎn)意思,也就是上文中的 br,所以如果可以,服務(wù)器應(yīng)該選擇壓縮效率更高的 br 壓縮算法。
有損壓縮
與無損壓縮相對(duì)的就是有損壓縮,經(jīng)過此方法壓縮,解壓的數(shù)據(jù)會(huì)與原始數(shù)據(jù)不同但是非常接近
有損壓縮主要將次要的數(shù)據(jù)舍棄,犧牲一些質(zhì)量來減少數(shù)據(jù)量、提高壓縮比,這種方法經(jīng)常用于壓縮多媒體數(shù)據(jù),比如音頻、視頻、圖片。
可以通過 HTTP 請(qǐng)求頭部中的 Accept 字段里的「q質(zhì)量因子」,告訴服務(wù)器期望的資源質(zhì)量。
Accept:audio/*;q0.2,audio/basic
關(guān)于圖片的壓縮,目前壓縮比較高的是 Google 推出的 WebP 格式,它與常見的 Png 格式圖片的壓縮比例對(duì)比如下圖:
可以發(fā)現(xiàn),相同圖片質(zhì)量下,WebP 格式的圖片大小都比 Png 格式的圖片小,所以對(duì)于大量圖片的網(wǎng)站可以考慮使用 WebP 格式的圖片,這將大幅度提升網(wǎng)絡(luò)傳輸?shù)男阅堋?/p>
關(guān)于音視頻的壓縮,音視頻主要是動(dòng)態(tài)的,每個(gè)幀都有時(shí)序的關(guān)系,通常時(shí)間連續(xù)的幀之間的變化是很小的。
比如,一個(gè)在看書的視頻,畫面通常只有人物的手和書桌上的書是會(huì)有變化的,而其他地方通常都是靜態(tài)的,于是只需要在一個(gè)靜態(tài)的關(guān)鍵幀,使用增量數(shù)據(jù)來表達(dá)后續(xù)的幀,這樣便減少了很多數(shù)據(jù),提高了網(wǎng)絡(luò)傳輸?shù)男阅?。?duì)于視頻常見的編碼格式有 H264、H265 等,音頻常見的編碼格式有 AAC、AC3。文章來源:http://www.zghlxwxcb.cn/news/detail-834134.html
這期就到這里,下期見!?文章來源地址http://www.zghlxwxcb.cn/news/detail-834134.html
到了這里,關(guān)于如何減少 HTTP 響應(yīng)的數(shù)據(jù)大小的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!