web性能優化之GZIP壓縮

       從服務端優化來講,經過對服務端作壓縮配置能夠大大減少文本文件的體積,從而使加載文本的速度成倍的加快。目前比較通用的壓縮方法是啓用gzip壓縮。它會把瀏覽器請求的頁面,以及頁面中引用的靜態資源以壓縮包的形式發送到客戶端,而後在客戶端完成解壓和拼裝.下圖是使用相關工具檢測沒有開啓網頁壓縮的效果。javascript

檢測地址:php

http://www.whatsmyip.org/http-compression-test/?url=d3d3LmZlbmd6aWdhbWUuY29tcss

windows下apache開啓GZIPhtml

實現步驟:
1.找到並打開apache/conf目錄中的httpd.conf文件
2.httpd.conf中打開deflate_Module和headers_Module模塊,具體作法爲將 以下兩句前面的#去掉:
  LoadModule deflate_module modules/mod_deflate.so
  LoadModule headers_module modules/mod_headers.sojava

3.在httpd.conf文件底部加入以下代碼配置須要壓縮的文件:算法

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/php
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilter DEFLATE js css
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/gif image/png  image/jpe image/swf image/jpeg image/bmp
# Don’t compress images and other  #排除不須要壓縮的文件
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI .(?:html|htm)$ no-gzip dont-varySetEnvIfNoCase
#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>

4.重啓apache服務端。經過firebug查看頭信息Accept-Encoding是否爲gzip。apache

 

Web服務器處理

HTTP壓縮的過程以下:windows

Web服務器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支持HTTP壓縮(Accept-Encoding 信息);瀏覽器

若是瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的後綴名;緩存

若是請求文件是HTML、CSS等靜態文件,Web服務器到壓縮緩衝目錄中檢查是否已經存在請求文件的最新壓縮文件;

若是請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,並在壓縮緩衝目錄中存放請求文件的壓縮文件;

若是請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;

若是請求文件是動態文件,Web服務器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。

mod_gzip 和mod_deflate的主要區別是什麼?(來自互聯網)

首先一個區別是安裝它們的Apache Web服務器版本的差別。Apache 1.x系列沒有內建網頁壓縮技術,因此纔去用額外的第三方mod_gzip 模塊來執行壓縮。而Apache 2.x官方在開發的時候,就把網頁壓縮考慮進去,內建了mod_deflate 這個模塊,用以取代mod_gzip。雖然二者都是使用的Gzip壓縮算法,它們的運做原理是相似的。 第二個區別是壓縮質量。mod_deflate 壓縮速度略快而mod_gzip 的壓縮比略高。通常默認狀況下,mod_gzip 會比mod_deflate 多出4%~6%的壓縮量。 那麼,爲何使用mod_deflate?第三個區別是對服務器資源的佔用。 通常來講mod_gzip 對服務器CPU的佔用要高一些。mod_deflate 是專門爲確保服務器的性能而使用的一個壓縮模塊,mod_deflate 須要較少的資源來壓縮文件。這意味着在高流量的服務器,使用mod_deflate 可能會比mod_gzip 加載速度更快。 

相關文章
相關標籤/搜索