在IBM DW看到篇好文,是講如何通過伺服器配置(tomcat,apache,IIS)來實現頁面壓縮的,
地址是:http://www.ibm.com/developerworks/cn/web/wa-lo-webcompress/index.html
要點有
網頁壓縮是一項由 WEB 伺服器和瀏覽器之間共同遵守的協議,也就是說 WEB 伺服器和瀏覽器都必須支援該技術,所幸的是現在流行的瀏覽器都是支援的,包括 IE、FireFox、Opera 等;伺服器有 Apache 和 IIS 等。雙方的協商過程如下:
- 首先瀏覽器請求某個 URL 地址,並在請求的頭 (head) 中設定屬性 accept-encoding 值為 gzip, deflate,表明瀏覽器支援 gzip 和 deflate 這兩種壓縮方式(事實上 deflate 也是使用 gzip 壓縮協議,下面我們會介紹二者之間的區別);
- WEB 伺服器接收到請求後判斷瀏覽器是否支援壓縮,如果支援就傳送壓縮後的響應內容,否則傳送不經過壓縮的內容;
- 瀏覽器擷取響應內容後,判斷內容是否被壓縮,如果是則解壓縮,然後顯示響應頁面的內容。
在實際的應用中我們發現壓縮的比率往往在 3 到 10 倍,也就是本來 50k 大小的頁面,採用壓縮後實際傳輸的內容大小只有 5 至 15k 大小,這可以大大節省伺服器的網路頻寬,同時如果應用程式的響應足夠快時,網站的速度瓶頸就轉到了網路的傳輸速度上,因此內容壓縮後就可以大大的提升頁面的瀏覽速度。
對TOMCAT伺服器
如果您的 WEB 應用程式是跑在 Tomcat 伺服器下的,而且直接使用 Tomcat 所提供的 HTTP 服務,那建議你馬上動手,因為實在是太簡單了,你只需要在 server.xml 設定檔中給 HTTP Connector 增加一個 compression 的參數值為 on 並重啟 Tomcat 伺服器就立刻生效,配置如下:
<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" compression="on"/> |
Tomcat 採用的是 HTTP/1.1 的 GZIP 壓縮協議,它會根據瀏覽器送過來的請求中的 accept-encoding 值是否包含 gzip 來判斷瀏覽器是否支援 gzip 壓縮協議,如果瀏覽器支援就啟用 gzip 壓縮,否則就不進行任何壓縮處理。Tomcat 中還有另外一個參數 compressableMimeType,這個參數可以用來指定壓縮哪種類型的內容,例如可以指定該配置值為:text/html,text/plain ,則只壓縮 contentType 為 text/html 和 text/plain 的頁面,不過您最好也將 css 和 javascript 檔案也算在壓縮的檔案類型中,因為這兩者的壓縮效果也十分的明顯。
APACHE伺服器,啟用mod_deflate.so就可以了
IIS5暫時不行,要用第三方工具;而IIS 6可以了,見文章中的介紹方法