Linux空間用Gzip對網(wǎng)頁內(nèi)容進(jìn)行壓縮詳解 |
發(fā)布時(shí)間: 2012/6/28 17:03:35 |
使用mod_gzip 和 mod_deflate對網(wǎng)頁內(nèi)容進(jìn)行壓縮 Gzip是一種流行的文件壓縮算法,現(xiàn)在的應(yīng)用十分廣泛,尤其是在Linux平臺。當(dāng)應(yīng)用Gzip壓縮到一個(gè)純文本文件時(shí),效果是非常明顯的,大約可以減少70%以上的文件大小。這取決于文件中的內(nèi)容。 利用Apache中的Gzip模塊,我們可以使用Gzip壓縮算法來對Apache服務(wù)器發(fā)布的網(wǎng)頁內(nèi)容進(jìn)行壓縮后再傳輸?shù)娇蛻舳藶g覽器。這樣經(jīng)過壓縮后實(shí)際上降低了網(wǎng)絡(luò)傳輸?shù)淖止?jié)數(shù),最明顯的好處就是可以加快網(wǎng)頁加載的速度。 網(wǎng)頁加載速度加快的好處不言而喻,除了節(jié)省流量,改善用戶的瀏覽體驗(yàn)外,另一個(gè)潛在的好處是Gzip與搜索引擎的抓取工具有著更好的關(guān)系。例如Google就可以通過直接讀取gzip文件來比普通手工抓取更快地檢索網(wǎng)頁。在Google網(wǎng)站管理員工具(Google Webmaster Tools)中你可以看到,sitemap.xml.gz 是直接作為Sitemap被提交的。 而這些好處并不僅僅限于靜態(tài)內(nèi)容,PHP動(dòng)態(tài)頁面和其他動(dòng)態(tài)生成的內(nèi)容均可以通過使用Apache壓縮模塊壓縮,加上其他的性能調(diào)整機(jī)制和相應(yīng)的服務(wù)器端緩存規(guī)則,這可以大大提高網(wǎng)站的性能。 因此,對于部署在Linux服務(wù)器上的PHP程序,在服務(wù)器支持的情況下,我們建議你開啟使用Gzip Web壓縮。 二、 Gzip Web壓縮工作原理 Web服務(wù)器處理HTTP壓縮的過程如下: 1. Web服務(wù)器接收到瀏覽器的HTTP請求后,檢查瀏覽器是否支持HTTP壓縮(Accept-Encoding 信息); 2. 如果瀏覽器支持HTTP壓縮,Web服務(wù)器檢查請求文件的后綴名; 3. 如果請求文件是HTML、CSS等靜態(tài)文件,Web服務(wù)器到壓縮緩沖目錄中檢查是否已經(jīng)存在請求文件的最新壓縮文件; 4. 如果請求文件的壓縮文件不存在,Web服務(wù)器向?yàn)g覽器返回未壓縮的請求文件,并在壓縮緩沖目錄中存放請求文件的壓縮文件; 5. 如果請求文件的最新壓縮文件已經(jīng)存在,則直接返回請求文件的壓縮文件; 6. 如果請求文件是動(dòng)態(tài)文件,Web服務(wù)器動(dòng)態(tài)壓縮內(nèi)容并返回瀏覽器,壓縮內(nèi)容不存放到壓縮緩存目錄中。
三、讓我們開始吧! Apache上利用Gzip壓縮算法進(jìn)行壓縮的模塊有兩種:mod_gzip 和mod_deflate。要使用Gzip Web壓縮,請首先確定你的服務(wù)器開啟了對這兩個(gè)組件之一的支持。在Linux服務(wù)器上,現(xiàn)在已經(jīng)有越來越多的空間商開放了對它們的支持,有的甚至是同時(shí)支持這兩個(gè)模塊的。例如目前Godaddy、Bluehost及DreamHosts等空間商的服務(wù)器都已同時(shí)支持mod_gzip 和mod_deflate。 雖然使用Gzip同時(shí)也需要客戶端瀏覽器的支持,不過不用擔(dān)心,目前大部分瀏覽器都已經(jīng)支持Gzip了,如IE、Mozilla Firefox、Opera、Chrome等。 通過查看HTTP頭,我們可以快速判斷使用的客戶端瀏覽器是否支持接受gzip壓縮。 若發(fā)送的HTTP頭中出現(xiàn)以下信息,則表明你的瀏覽器支持接受相應(yīng)的gzip壓縮: Accept-Encoding: gzip 支持mod_gzip 如果服務(wù)器開啟了對Gzip組件的支持,那么我們就可以在http.conf或.htaccess里面進(jìn)行定制,下面是一個(gè).htaccess配置的簡單實(shí)例:
里面的文件MIME類型可以根據(jù)自己情況添加,至于PDF 、圖片、音樂文檔之類的這些本身都已經(jīng)高度壓縮格式,重復(fù)壓縮的作用不大,反而可能會因?yàn)樵黾覥PU的處理時(shí)間及瀏覽器的渲染問題而降低性能。所以就沒必要再通過Gzip壓縮。 通過以上設(shè)置后再查看返回的HTTP頭,出現(xiàn)以下信息則表明返回的數(shù)據(jù)已經(jīng)過壓縮。即網(wǎng)站程序所配置的Gzip壓縮已生效。 Content-Encoding: gzip 注:不管使用mod_gzip 還是mod_deflate,此處返回的信息都一樣。因?yàn)樗鼈兌际菍?shí)現(xiàn)的gzip壓縮方式。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |