資源描述:
《網(wǎng)站優(yōu)化之頁面壓縮》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、網(wǎng)站的訪問速度是由多個因素所共同決定的,這些因素例如應(yīng)用程序的響應(yīng)速度、網(wǎng)絡(luò)帶寬、服務(wù)器性能、與客戶端之間的網(wǎng)絡(luò)傳輸速度等等。其中最重要的一個因素是應(yīng)用程序本身的響應(yīng)速度,因此當(dāng)你為網(wǎng)站性能所苦惱時,你第一個需要著手進(jìn)行處理的便是盡可能的提升應(yīng)用程序的執(zhí)行速度,你可以使用緩存或者是優(yōu)化代碼的執(zhí)行效率來提升應(yīng)用程序的速度。但是,本文并不是介紹如何來提升應(yīng)用程序的執(zhí)行效率,前面提到的只不過是為了防止您病急亂投醫(yī)。在確保您的應(yīng)用程序的性能已經(jīng)達(dá)到足夠好,同時服務(wù)器的性能也完全滿足的情況下,不妨來試試網(wǎng)頁壓縮來進(jìn)一步提升網(wǎng)頁的瀏覽速度,而且非常重要的是,它完全不需要任何的
2、成本,只不過是會讓您的服務(wù)器CPU占用率稍微提升一兩個百分點(diǎn)而已或者更少。網(wǎng)頁壓縮是一項(xiàng)由WEB服務(wù)器和瀏覽器之間共同遵守的協(xié)議,也就是說WEB服務(wù)器和瀏覽器都必須支持該技術(shù),所幸的是現(xiàn)在流行的瀏覽器都是支持的,包括IE、FireFox、Opera等;服務(wù)器有Apache和IIS等。雙方的協(xié)商過程如下:1.首先瀏覽器請求某個URL地址,并在請求的頭(head)中設(shè)置屬性accept-encoding值為gzip,deflate,表明瀏覽器支持gzip和deflate這兩種壓縮方式(事實(shí)上deflate也是使用gzip壓縮協(xié)議,下面我們會介紹二者之間的區(qū)別);2.W
3、EB服務(wù)器接收到請求后判斷瀏覽器是否支持壓縮,如果支持就傳送壓縮后的響應(yīng)內(nèi)容,否則傳送不經(jīng)過壓縮的內(nèi)容;3.瀏覽器獲取響應(yīng)內(nèi)容后,判斷內(nèi)容是否被壓縮,如果是則解壓縮,然后顯示響應(yīng)頁面的內(nèi)容。在實(shí)際的應(yīng)用中我們發(fā)現(xiàn)壓縮的比率往往在3到10倍,也就是本來50k大小的頁面,采用壓縮后實(shí)際傳輸?shù)膬?nèi)容大小只有5至15k大小,這可以大大節(jié)省服務(wù)器的網(wǎng)絡(luò)帶寬,同時如果應(yīng)用程序的響應(yīng)足夠快時,網(wǎng)站的速度瓶頸就轉(zhuǎn)到了網(wǎng)絡(luò)的傳輸速度上,因此內(nèi)容壓縮后就可以大大的提升頁面的瀏覽速度。接下來我們介紹幾種常用的環(huán)境下如何啟用網(wǎng)頁壓縮功能。純Tomcat服務(wù)器如果您的WEB應(yīng)用程序是跑在To
4、mcat服務(wù)器下的,而且直接使用Tomcat所提供的HTTP服務(wù),那建議你馬上動手,因?yàn)閷?shí)在是太簡單了,你只需要在server.xml配置文件中給HTTPConnector增加一個compression的參數(shù)值為on并重啟Tomcat服務(wù)器就立刻生效,配置如下:Tomcat采用的是HTTP/1.1的GZIP壓縮協(xié)議,它會根據(jù)瀏覽器送
5、過來的請求中的accept-encoding值是否包含gzip來判斷瀏覽器是否支持gzip壓縮協(xié)議,如果瀏覽器支持就啟用gzip壓縮,否則就不進(jìn)行任何壓縮處理。Tomcat中還有另外一個參數(shù)compressableMimeType,這個參數(shù)可以用來指定壓縮哪種類型的內(nèi)容,例如可以指定該配置值為:text/html,text/plain,則只壓縮contentType為text/html和text/plain的頁面,不過您最好也將css和javascript文件也算在壓縮的文件類型中,因?yàn)檫@兩者的壓縮效果也十分的明顯?;仨撌譇pache服務(wù)器在apache1.3版本
6、,大家常用mod_gzip對輸出內(nèi)容進(jìn)行壓縮,現(xiàn)在主流的瀏覽器都支持gzip解壓縮。在apache2下,這個模塊換名為?mod_deflate,對應(yīng)的模塊文件名是?mod_deflate.so。mod_gzip本文不做介紹,下面描述一下在Apache2下如何啟用并配置?mod_deflate?模塊。默認(rèn)安裝的Apache不管是Windows還是Linux/Unix,都是不啟用該模塊的,Linux/Unix下甚至不帶該模塊,你需要手工編譯這個模塊。下面我們分別介紹在Windows和Linux操作系統(tǒng)下如何啟用并配置?mod_deflate?模塊。在Windows下采
7、用安裝程序安裝的Apache服務(wù)器已經(jīng)帶有deflate所需要的模塊?mod_deflate.so?和?mod_headers.so,我們只需要在httpd.conf配置文件中啟用并進(jìn)行相關(guān)的配置即可,配置如下:LoadModuledeflate_modulemodules/mod_deflate.soLoadModuleheaders_modulemodules/mod_headers.so#InsertfilterSetOutputFilterDEFLATE#Netscape4.xhassomeproblems...BrowserMatc
8、h^Moz