數(shù)據(jù)壓縮
- 數(shù)據(jù)壓縮介紹
- 數(shù)據(jù)壓縮實現(xiàn)
- 壓縮工具比較
一、數(shù)據(jù)壓縮介紹
數(shù)據(jù)從服務(wù)器傳輸?shù)娇蛻舳似√埽枰獋鬏敃r間刃滓,文件越大傳輸時間就越長,為了減少傳輸時間欠痴,我們一般把數(shù)據(jù)壓縮后在傳給客戶端迄靠。
apache支持兩種壓縮:deflate、gzip
mod_gzip 和mod_deflate比較
首先一個區(qū)別是安裝它們的Apache Web服務(wù)器版本的差異喇辽。Apache 1.x系列沒有內(nèi)建網(wǎng)頁壓縮技術(shù)掌挚,所以才去用額外的第三方mod_gzip 模塊來執(zhí)行壓縮。而Apache 2.x官方在開發(fā)的時候菩咨,就把網(wǎng)頁壓縮考慮進(jìn)去吠式,內(nèi)建了mod_deflate 這個模塊,用以取代mod_gzip旦委。雖然兩者都是使用的Gzip壓縮算法奇徒,它們的運作原理是類似的。
第二個區(qū)別是壓縮質(zhì)量缨硝。mod_deflate 壓縮速度略快而mod_gzip 的壓縮比略高摩钙。一般默認(rèn)情況下,mod_gzip 會比mod_deflate 多出4%~6%的壓縮量查辩。
那么胖笛,為什么使用mod_deflate?第三個區(qū)別是對服務(wù)器資源的占用宜岛。 一般來說mod_gzip 對服務(wù)器CPU的占用要高一些长踊。mod_deflate 是專門為確保服務(wù)器的性能而使用的一個壓縮模塊,mod_deflate 需要較少的資源來壓縮文件萍倡。這意味著在高流量的服務(wù)器身弊,使用mod_deflate 可能會比mod_gzip 加載速度更快。
應(yīng)用場景:數(shù)據(jù)壓縮傳輸
優(yōu)化目的:提升用戶訪問頁面加載速度列敲,節(jié)約帶寬
二阱佛、數(shù)據(jù)壓縮實現(xiàn)
1)開啟模塊
LoadModule deflate_module modules/mod_deflate.so
2)調(diào)用模塊
<IfModule deflate_module>
DeflateCompressionLevel 4
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
BrowserMatch \bMSIE\s[1-6] dont-vary
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
</IfModule>
<IfModule deflate_module>
# 壓縮等級 4 1-9,數(shù)字越大壓縮的越好戴而,也越占用CPU時間
DeflateCompressionLevel 4
# 壓縮類型 html凑术、xml、php所意、css淮逊、js
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
#瀏覽器匹配 IE1-6的不壓縮
BrowserMatch \bMSIE\s[1-6] dont-vary
#設(shè)置不壓縮的文件催首,注意圖片本身就是壓縮過的,所以不需要再壓縮
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
</IfModule>
三泄鹏、測試
1)生成HTML數(shù)據(jù)頁面
for i in `seq 1 20`;do
cat /etc/passwd >> /usr/local/apache/htdocs/test_deflate.html
done
2)未啟用壓縮前通過瀏覽器訪問該頁面郎任,通過開發(fā)者工具查看頁面大小
3)啟用壓縮再次通過瀏覽器訪問該頁面,通過開發(fā)者工具查看頁面大小备籽,如果明顯變小了則說明壓縮成功涝滴。也可以從響應(yīng)頭中看出多了壓縮字段。
響應(yīng)頭圖片