網頁壓縮是一項由 web 伺服器和瀏覽器之間共同遵守的協議,也就是說 web 伺服器和瀏覽器都必須支援該技術,所幸的是現在流行的瀏覽器都是支援的,包括 ie、firefox、opera 等;伺服器有 apache 和 iis 等。雙方的協商過程如下:
首先瀏覽器請求某個 url 位址,並在請求的頭 (head) 中設定屬性 accept-encoding 值為 gzip, deflate,表明瀏覽器支援 gzip 和 deflate 這兩種壓縮方式(事實上 deflate 也是使用 gzip 壓縮協議,下面我們會介紹二者之間的區別);
web 伺服器接收到請求後判斷瀏覽器是否支援壓縮,如果支援就傳送壓縮後的響應內容,否則傳送不經過壓縮的內容;
瀏覽器獲取響應內容後,判斷內容是否被壓縮,如果是則解壓縮,然後顯示響應頁面的內容。
在實際的應用中我們發現壓縮的比率往往在 3 到 10 倍,也就是本來 50k 大小的頁面,採用壓縮後實際傳輸的內容大小只有 5 至 15k 大小,這可以大大節省伺服器的網路頻寬,同時如果應用程式的響應足夠快時,**的速度瓶頸就轉到了網路的傳輸速度上,因此內容壓縮後就可以大大的提公升頁面的瀏覽速度。
接下來我們介紹幾種常用的環境下如何啟用網頁壓縮功能。
iis 伺服器
微軟的 iis 伺服器同樣也是目前用得最多的 web 伺服器之一,而且用來執行 asp 頁面也是必不可少的。iis6 本身支援 gzip 壓縮,iis5 就比較費勁了,接下來我們介紹如何在 iis6 中啟用壓縮功能。
開啟 internet 資訊服務(iis)管理器,右擊"**"->"屬性",選擇"服務"。在 "http壓縮" 框中選中 "壓縮應用程式檔案" 和 "壓縮靜態檔案",按需要設定 "臨時目錄" 和 "臨時目錄的最大限制",如下圖所示:
圖1 設定**屬性
接下來配置 gzip 元件,在 internet 資訊服務(iis)管理器,點選 "web 服務擴充套件"->"增加乙個新的 web 服務擴充套件...",在 "新建 web 服務擴充套件" 框中輸入副檔名 "http compression",新增 "要求的檔案" 為 c:\windows\system32\inetsrv\gzip.dll,選中 "設定擴充套件狀態為允許",如下圖所示:
圖2 設定 web 服務擴充套件
圖3 新建 web 服務擴充套件
還沒完呢,我們還需要修改乙個配置檔案,修改之前請先停止 iis 服務,開啟 c:\windows\system32\inetsrv\metabase.xml,這個檔案很大,找到下面一段資訊:
增加一些要進行壓縮的檔案字尾,其中 hcfileextensions 是靜態檔案的副檔名,增加 js 和 css 等;hcscriptfileextensions 為動態檔案的副檔名,增加 aspx,hcdynamiccompressionlevel改成9,(0-10,9是價效比最高的乙個)。(有三個相同名字的段,分別是deflate,gzip,parameters,第三段不用管它,前兩段有基本相同的引數,在這兩段的引數加)
儲存後啟動 iis 即可生效。
最後我們介紹如何來測試前面所做的工作是否起效,你可能會覺得很奇怪,配置好了,用瀏覽器開啟頁面正常,檢視頁面原始碼,內容並沒有變化,大小也跟原來一樣,怎麼回事呢?這是因為瀏覽器已經把內容解壓了的結果,有兩個方法來判斷壓縮是否生效:第一,檢視 web 伺服器的日誌,不管是 apache 或者是 iis,二者的訪問日誌格式都差不多是下面這種格式:
最後兩個數字分別是 http 的結果碼(200 表示 ok),19351 表示的是響應內容的大小,把這個大小跟你在瀏覽器上檢視原始碼的大小比較一下就可以知道是否生效。
啟用IIS6的Gzip壓縮功能
iis6已經內建了gzip壓縮的支援,可惜,沒有設定更好的管理介面。所以要開啟這個選項,還要費些功夫。1 如果你需要壓縮靜態檔案 html 需要在硬碟上建乙個目錄,並給它 iusr 機器名 這個使用者的寫許可權。如果壓縮動態檔案 php,asp,aspx,ashx 就不需要了,因為它的頁面是每次都動...
啟用IIS6的Gzip壓縮功能
網頁gzip壓縮的優勢是很明顯的,第一減小了伺服器的頻寬,第二提高使用者開啟網頁速度。iwms內建了gzip壓縮功能,但只對動態頁有效。如果你生成了靜態檔案並伺服器是iis6 windows2003及以上 那麼你可以通過下邊介紹的內容簡單的啟用iis自帶的gzip壓縮功能,體驗gzip壓縮帶給你的種...
IIS7配置Gzip壓縮
開啟配置http壓縮 gzip 在iis7中配置gzip壓縮相比iis6來說實在容易了許多,而且預設情況下就是啟用gzip壓縮的。如果沒有,則可以再功能檢視下找到 壓縮 項,進入之後就會看到 靜態內容壓縮 和 動態內容壓縮 兩個選項,勾上即可。配置啟用壓縮的檔案型別及其他選項 我們可以看到,iis實...