首先我們先了解Apache Gzip的相關資料。
一、gzip介紹
Gzip是一種流行的文件壓縮算法,現在的應用十分廣泛,尤其是在Linux平臺。當應用Gzip壓縮到一個純文本文件時,效果是非常明顯的,大約可以減少70%以上的文件大小。這取決于文件中的內容。 利用Apache中的Gzip模塊,我們可以使用Gzip壓縮算法來對Apache服務器發布的網頁內容進行壓縮后再傳輸到客戶端瀏覽器。這樣經過壓縮后實際上降低了網絡傳輸的字節數,最明顯的好處就是可以加快網頁加載的速度。
網頁加載速度加快的好處不言而喻,除了節省流量,改善用戶的瀏覽體驗外,另一個潛在的好處是Gzip與搜索引擎的抓取工具有著更好的關系。
二、Web服務器處理
HTTP壓縮的過程如下:
Web服務器接收到瀏覽器的HTTP請求后,檢查瀏覽器是否支持HTTP壓縮(Accept-Encoding 信息);
如果瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的后綴名;
如果請求文件是HTML、CSS等靜態文件,Web服務器到壓縮緩沖目錄中檢查是否已經存在請求文件的最新壓縮文件;
如果請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,并在壓縮緩沖目錄中存放請求文件的壓縮文件;
如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;
如果請求文件是動態文件,Web服務器動態壓縮內容并返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。
三、開啟Gzip
Apache利用Gzip壓縮算法進行壓縮的模塊有兩種:mod_gzip 和mod_deflate。
現在瀏覽器本身也自動Gzip壓縮功能,支持Accept-Encoding: gzip,deflate ,這里我在firefox瀏覽器下測試。
通過查看HTTP頭,我們可以快速判斷使用的客戶端瀏覽器是否支持接受gzip壓縮。
若發送的HTTP頭中出現以下信息,則表明你的瀏覽器支持接受相應的gzip壓縮:
Accept-Encoding: gzip 支持mod_gzip
Accept-Encoding: deflate 支持mod_deflate
Accept-Encoding: gzip,deflate
同時支持mod_gzip 和mod_deflate Apache內置有mod_deflate模塊來啟用gzip功能,但假如安裝apache的時候沒有編譯相關模塊,就需要你手動安裝一次,以啟用它:
首先到你的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模塊:
新聞熱點
疑難解答