|
|
|
|
|
我們?cè)谂渲镁W(wǎng)站GZip壓縮的時(shí)候,會(huì)發(fā)現(xiàn)有兩個(gè)模塊可以設(shè)置的,一個(gè)是GZip模塊的參數(shù)配置,另一個(gè)是Deflate模塊的參數(shù)配置,他們的設(shè)置方法是一樣的。剛開始時(shí)我不太明白,這兩地方有什么不同?網(wǎng)站開啟GZip壓縮要設(shè)置GZip模塊還是Deflate模塊?今天通過參考了相關(guān)的資料,明白了他們之間的幾點(diǎn)區(qū)別。
gzip和deflate
HTTP定義了一種機(jī)制,一個(gè)Web客戶機(jī)和Web服務(wù)器同意一壓縮方案可以用來發(fā)送內(nèi)容。這是使用接受編碼和內(nèi)容編碼標(biāo)頭完成。有兩種常用的HTTP壓縮:DEFLATE和GZIP。
DEFLATE是一個(gè)無(wú)專利的壓縮算法,它可以實(shí)現(xiàn)無(wú)損數(shù)據(jù)壓縮,有眾多開源的實(shí)現(xiàn)算法。
GZIP是使用DEFLATE進(jìn)行壓縮數(shù)據(jù)的另一個(gè)壓縮庫(kù)。
gzip和deflate的幾點(diǎn)區(qū)別(以Apache服務(wù)器為例)
如下是某些網(wǎng)友的意見:
Apache服務(wù)器通過mod_gzip和mod_deflate這兩個(gè)地方來開啟網(wǎng)站的GZip壓縮,不管使用mod_gzip 還是mod_deflate,此處返回的信息都一樣。因?yàn)樗鼈兌际菍?shí)現(xiàn)的gzip壓縮方式。這里主要說說它們之間的幾點(diǎn)區(qū)別。
第一、Apache Web服務(wù)器版本差異
Apache 1.x系列沒有內(nèi)建網(wǎng)頁(yè)壓縮技術(shù),所以才去用額外的第三方mod_gzip 模塊來執(zhí)行壓縮。而Apache 2.x官方在開發(fā)的時(shí)候,就把網(wǎng)頁(yè)壓縮考慮進(jìn)去,內(nèi)建了mod_deflate 這個(gè)模塊,用以取代mod_gzip。雖然兩者都是使用的Gzip壓縮算法,它們的運(yùn)作原理是類似的。
第二、壓縮質(zhì)量
mod_deflate壓縮速度略快而mod_gzip 的壓縮比略高。一般默認(rèn)情況下,mod_gzip 會(huì)比mod_deflate 多出4%~6%的壓縮量。
第三、對(duì)服務(wù)器資源的占用
一般來說mod_gzip 對(duì)服務(wù)器CPU的占用要高一些。mod_deflate 是專門為確保服務(wù)器的性能而使用的一個(gè)壓縮模塊,mod_deflate 需要較少的資源來壓縮文件。這意味著在高流量的服務(wù)器,使用mod_deflate 可能會(huì)比mod_gzip 加載速度更快。
簡(jiǎn)而言之,如果你的網(wǎng)站,每天不到1000獨(dú)立訪客,想要加快網(wǎng)頁(yè)的加載速度,就使用mod_gzip。雖然會(huì)額外耗費(fèi)一些服務(wù)器資源, 但也是值得的。如果你的網(wǎng)站每天超過1000獨(dú)立訪客,并且使用的是共享的虛擬主機(jī),所分配系統(tǒng)資源有限的話,使用mod_deflate 將會(huì)是更好的選擇。
虛擬空間如何設(shè)置GZip
對(duì)于沒有啟用以上兩種Gzip模塊的虛擬空間,還可以退而求其次使用php的zlib函數(shù)庫(kù)(同樣需要查看服務(wù)器是否支持)來壓縮文件,只是這種方法使用起來比較麻煩,而且一般會(huì)比較耗費(fèi)服務(wù)器資源,請(qǐng)根據(jù)情況慎重使用。
編者:Deflate只是一種過時(shí)的網(wǎng)頁(yè)壓縮,應(yīng)該禁用
小編今天查了下資料,發(fā)現(xiàn)上述意見有些是不當(dāng)?shù)?,根?jù)有關(guān)GZip和Deflate的資料說明,Deflate只是一種過時(shí)的網(wǎng)頁(yè)壓縮,現(xiàn)在瀏覽器對(duì)其支持并不好,應(yīng)該禁用deflate壓縮。請(qǐng)看看小編翻譯的博文《deflate——過時(shí)的網(wǎng)頁(yè)壓縮格式》。