1. 程式人生 > >GZIP壓縮原理分析(07)——第四章 基於gzip的HTTP壓縮詳解(四01) 章前語

GZIP壓縮原理分析(07)——第四章 基於gzip的HTTP壓縮詳解(四01) 章前語

簡單來講,HTTP壓縮就是將HTTP應答報文資料部分壓縮(所謂資料部分,是用於區分HTTP頭的),這對於減小網路頻寬來講有極大的好處。目前大型網站基本都會使用HTTP壓縮功能,比如百度、騰訊、新浪等,使用wireshark抓包可以非常直觀的看到被壓縮的報文。

壓縮本身是比較消耗CPU效能的(後續章節分析原始碼時會有更深的體會,因為壓縮要涉及大量的位操作,比較考驗CPU的運算能力),對記憶體的要求也不算小(這個其實要看站在什麼角度考慮了:如果只把壓縮當做一個簡單功能,與某些負載均衡功能比起來,確實對記憶體的消耗大了些;但是與當前裝置總記憶體保有量來說,比如動輒十幾個G的記憶體,壓縮消耗的這點記憶體又微不足道了),所以通常會把HTTP壓縮功能挪到伺服器前端的裝置,比如讓負載均衡裝置實現HTTP壓縮功能,而伺服器只負責把原始HTTP應答報文交付給負載均衡裝置即可,從而達到減小伺服器壓力的目的。通常帶有HTTP壓縮功能的裝置(比如負載均衡裝置)不使用CPU去完成壓縮,而是使用專門的壓縮晶片或者CPU上的壓縮核去完成壓縮功能,即,用硬體去完成該功能,這樣整個裝置的吞吐和效能馬上就上來了。F5的負載均衡裝置對於HTTP壓縮的實現非常強勁,這裡不是做廣告,而是真心佩服(雖然小弟為國產負載均衡廠商幹活),咱可以在評論中討論一下F5,這裡不做過多介紹。