首先我們先了解Apache Gzip的相關(guān)資料。
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)石阡免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。一、gzip介紹
Gzip是一種流行的文件壓縮算法,現(xiàn)在的應用十分廣泛,尤其是在Linux平臺。當應用Gzip壓縮到一個純文本文件時,效果是非常明顯的,大約可以減少70%以上的文件大小。這取決于文件中的內(nèi)容。 利用Apache中的Gzip模塊,我們可以使用Gzip壓縮算法來對Apache服務器發(fā)布的網(wǎng)頁內(nèi)容進行壓縮后再傳輸?shù)娇蛻舳藶g覽器。這樣經(jīng)過壓縮后實際上降低了網(wǎng)絡(luò)傳輸?shù)淖止?jié)數(shù),最明顯的好處就是可以加快網(wǎng)頁加載的速度。
網(wǎng)頁加載速度加快的好處不言而喻,除了節(jié)省流量,改善用戶的瀏覽體驗外,另一個潛在的好處是Gzip與搜索引擎的抓取工具有著更好的關(guān)系。
二、Web服務器處理
HTTP壓縮的過程如下:成都服務器托管
Web服務器接收到瀏覽器的HTTP請求后,檢查瀏覽器是否支持HTTP壓縮(Accept-Encoding 信息);
如果瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的后綴名;
如果請求文件是HTML、CSS等靜態(tài)文件,Web服務器到壓縮緩沖目錄中檢查是否已經(jīng)存在請求文件的最新壓縮文件;
如果請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,并在壓縮緩沖目錄中存放請求文件的壓縮文件;
如果請求文件的最新壓縮文件已經(jīng)存在,則直接返回請求文件的壓縮文件;
如果請求文件是動態(tài)文件,Web服務器動態(tài)壓縮內(nèi)容并返回瀏覽器,壓縮內(nèi)容不存放到壓縮緩存目錄中。
三、開啟Gzip
Apache利用Gzip壓縮算法進行壓縮的模塊有兩種:mod_gzip 和mod_deflate。
現(xiàn)在瀏覽器本身也自動Gzip壓縮功能,支持Accept-Encoding: gzip,deflate ,這里我在firefox瀏覽器下測試。
通過查看HTTP頭,我們可以快速判斷使用的客戶端瀏覽器是否支持接受gzip壓縮。
若發(fā)送的HTTP頭中出現(xiàn)以下信息,則表明你的瀏覽器支持接受相應的gzip壓縮:成都服務器托管
Accept-Encoding: gzip 支持mod_gzip
Accept-Encoding: deflate 支持mod_deflate
Accept-Encoding: gzip,deflate
同時支持mod_gzip 和mod_deflate Apache內(nèi)置有mod_deflate模塊來啟用gzip功能,但假如安裝apache的時候沒有編譯相關(guān)模塊,就需要你手動安裝一次,以啟用它:成都服務器托管
首先到你的apache源碼目錄,查找到mod_deflate.c文件 ,通常位置:apachehttpd源碼目錄/modules/filters/mod_deflate.c,進入上面找到的目錄運行下面的命令:成都服務器托管
/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c
注:apxs目錄請參照您自己的機器,通常在apache安裝目錄的bin目錄下。
安裝完成,到apache的modules目錄看看是不是有了mod_deflates.so,httpd.conf中打開deflate_Module和headers_Module模塊:成都服務器托管
LoadModule deflate_module modules/mod_deflate.so
加載mod_deflate.so模塊,默認安裝會自動寫入httpd.conf。
如果服務器開啟了對Gzip組件的支持,那么我們就可以在http.conf定制文件壓縮,下面是一個配置的簡單實例:
1、mod_gzip方式
2、deflate_Module方式
(1)嚴格匹配文件類型
(2)過濾文件類型
文件MIME類型可以根據(jù)自己情況添加,也可以通過瀏覽器查看connect-type:成都服務器托管
四、mod_gzip 和mod_deflate的主要區(qū)別是什么?(來自互聯(lián)網(wǎng))
首先一個區(qū)別是安裝它們的Apache Web服務器版本的差異。Apache 1.x系列沒有內(nèi)建網(wǎng)頁壓縮技術(shù),所以才去用額外的第三方mod_gzip 模塊來執(zhí)行壓縮。而Apache 2.x官方在開發(fā)的時候,就把網(wǎng)頁壓縮考慮進去,內(nèi)建了mod_deflate 這個模塊,用以取代mod_gzip。雖然兩者都是使用的Gzip壓縮算法,它們的運作原理是類似的。 第二個區(qū)別是壓縮質(zhì)量。mod_deflate 壓縮速度略快而mod_gzip 的壓縮比略高。一般默認情況下,mod_gzip 會比mod_deflate 多出4%~6%的壓縮量。 那么,為什么使用mod_deflate?第三個區(qū)別是對服務器資源的占用。 一般來說mod_gzip 對服務器CPU的占用要高一些。mod_deflate 是專門為確保服務器的性能而使用的一個壓縮模塊,mod_deflate 需要較少的資源來壓縮文件。這意味著在高流量的服務器,使用mod_deflate 可能會比mod_gzip 加載速度更快。
五、效果
沒有啟動Gzip壓縮:成都服務器托管
啟動Gzip壓縮:成都服務器托管
大小由10.7K到1.5K,如果文件較大,那么效果會更明顯。