<code id="6mcsu"></code>
<li id="6mcsu"></li>
<li id="6mcsu"><dl id="6mcsu"></dl></li>
  • <code id="6mcsu"><tr id="6mcsu"></tr></code>
    或者

    IIS啟用Gzip壓縮(HTTP壓縮)過程詳解

    作者:黑貓警長 瀏覽:118 發布時間:2017-09-04
    分享 評論 0

    一.摘要

      本文總結了如何為使用IIS托管的網站啟用Gzip壓縮, 從而減少網頁網絡傳輸大小, 提高用戶顯示頁面的速度.

      二.前言.

      本文的知識點是從互聯網收集整理, 主要來源于中文wiki. 使用YSlow檢測網站啟用了哪些優化時, Gzip是十分關鍵的一項. 啟動Gip壓縮將立竿見影的減少頁面的網絡傳輸大小.

      三.HTTP壓縮概述

      HTTP壓縮是在Web服務器和瀏覽器間傳輸壓縮文本內容的方法。HTTP壓縮采用通用的壓縮算法如gzip等壓縮HTML、JavaScript或CSS文件。壓縮的最大好處就是降低了網絡傳輸的數據量,從而提高客戶端瀏覽器的訪問速度。當然,同時也會增加一點點服務器的負擔。Gzip是比較常見的一種HTTP壓縮算法。

      四.HTTP壓縮工作原理

      Web服務器處理HTTP壓縮的工作原理如下:

      1.Web服務器接收到瀏覽器的HTTP請求后,檢查瀏覽器是否支持HTTP壓縮;

      在用戶瀏覽器發送請求的HTTP頭中, 帶有"Accept-Encoding: gzip, deflate"參數則表明支持gzip和deflate兩種壓縮算法.

      2.如果瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的后綴名;

      靜態文件和動態文件后綴啟動要所都需要在MetaBase.xml中設置.

      靜態文件需要設置: HcFileExtensions Metabase Property (單擊跳轉到MSDN說明)

      動態文件需要設置: HcScriptFileExtensions Metabase Property (單擊跳轉到MSDN說明)

      3.如果請求文件是HTML、CSS等靜態文件并且文件后綴啟用了壓縮,則Web服務器到壓縮緩沖目錄中檢查是否已經存在請求文件的最新壓縮文件;

      4.如果請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,并在壓縮緩沖目錄中存放請求文件的壓縮文件;

      5.如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;

      6.如果請求文件是ASPX等動態文件并且文件后綴啟用了壓縮,Web服務器動態壓縮內容并返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。

      五. 在IIS中啟用HTTP壓縮

      IIS默認并不支持HTTP壓縮,需要進行簡單的配置

      1.打開Internet信息服務(IIS)管理器,右擊"網站"->"屬性",選擇"服務"。在"HTTP壓縮"框中選中"壓縮應用程序文件"和"壓縮靜態文件",按需要設置"臨時目錄"和"臨時目錄的最大限制";

      image

      2.提醒: 經試驗此步驟在本人機器上沒有作用, 可以忽略.

      在Internet信息服務(IIS)管理器,右擊"Web服務擴展"->"增加一個新的Web服務擴展...",在"新建Web服務擴展"框中輸入擴展名"HTTP Compression",添加"要求的文件"為C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系統目錄根據您的安裝可能有所不同,選中"設置擴展狀態為允許";

      image

      3.使用文本編輯器打開C:\Windows\System32\inetsrv\MetaBase.xml(建議先備份),

      找到Location ="/LM/W3SVC/Filters/Compression/gzip用于設置gzip壓縮,

      找到Location ="/LM/W3SVC/Filters/Compression/deflate"用于設置deflate壓縮.

      上面兩個節點緊挨著.并且設置的屬性相同.

      如果需要壓縮動態文件,則將HcDoDynamicCompression設置為"TRUE",并在HcScriptFileExtensions中增加您要壓縮的動態文件后綴名,如aspx;如果需要壓縮靜態文件,則將HcDoStaticCompression和HcDoOnDemandCompression設置為"TRUE",并在HcFileExtensions中增加您需要壓縮的靜態文件后綴名,如xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的壓縮率,數值在0-10, 默認為0.

      HcDynamicCompressionLevel屬性說明:HcDynamicCompressionLevel Metabase Property

      HcOnDemandCompLevel 屬性說明:HcOnDemandCompLevel Metabase Property

      說明: 這兩個屬性值一般推薦設置為9, 具有最佳性價比.但是在我的window server 2003上, 壓縮率無論如何設置, jQuery和jQuery UI兩個文件(58k/188k)壓縮后的大小一直相同.(20k/45k).

      下面是我的實例:

    <IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/deflate"
           HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
           HcCreateFlags="0"
           HcDoDynamicCompression="TRUE"
           HcDoOnDemandCompression="TRUE"
           HcDoStaticCompression="true"
           HcDynamicCompressionLevel="9"
           HcFileExtensions="htm
                        html
                        txt
                        js
                        css 
                        swf
                        xml"
           HcOnDemandCompLevel="9"
           HcPriority="1"
           HcScriptFileExtensions="asp 
               aspx
               dll
               exe"
       ></IIsCompressionScheme><IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/gzip"
           HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
           HcCreateFlags="1"
           HcDoDynamicCompression="TRUE"
           HcDoOnDemandCompression="TRUE"
           HcDoStaticCompression="true"
           HcDynamicCompressionLevel="9"
           HcFileExtensions="htm
                        html
                        txt
                        js
                        css 
                        swf
                        xml"
           HcOnDemandCompLevel="9"
           HcPriority="1"
           HcScriptFileExtensions="asp 
               aspx
               dll
               exe"
       ></IIsCompressionScheme>

      4.編輯完畢后保存MetaBase.xml文件;如果文件無法保存,則可能IIS正在使用該文件。打開"開始"->"管理工具"->"服務",停止"IIS Admin Service"后,即可保存;

      5.最后,重新啟動IIS。可以到HTTP壓縮測試網站驗證結果.以jQuery為例, 核心類庫和UI類庫原始大小分別是57k和188k,壓縮后分別是20k和45k:

      image

      我們通過Http頭中的: Content-Encoding:gzip 屬性判斷返回后的數據已經啟用了gzip壓縮:

      image

      使用YSlow檢測, 當只啟動靜態文件壓縮時, Gzip壓縮評級為B:

      image

      當同時啟動了動態文件壓縮時, Gzip壓縮評級為A:

      image

      六.要點總結

      1. 在修改MetaBase.xml文件時, 要停止"IIS Admin Service"服務. 否則無法保存.

      2.靜態壓縮和動態壓縮率最好設置為9.

      3.上文的步驟2, 即使不添加Web服務擴展效果也是相同的.

      4.壓縮率設置對js文件不起作用, 壓縮后大小總是相同的.

      5.圖片文件即使啟用了gzip壓縮大小也沒有變化.

      七. 總結

      本文總結了如何在IIS中啟用Gzip壓縮. 在半年前的項目中我為網站啟用了Gzip, 今天整理此文主要為了整理自己的知識以便以后忘記時復習. 另外經查看ChinaCache公司提供的CDN也都啟用了Gzip壓縮.


    精品一区二区三区中文字幕| 国产乱码精品一区二区三区中文| 中文字字幕在线中文无码| 亚洲中文字幕无码爆乳av中文| 少妇人妻偷人精品无码视频| 中文字幕丰满伦子无码| 久久久久久亚洲AV无码专区| 天堂中文字幕在线| 亚洲一级特黄无码片| 人妻夜夜添夜夜无码AV| 日韩亚洲欧美中文高清在线| 天堂√中文最新版在线| 国产网红无码精品视频| 亚洲中文字幕无码不卡电影| 久久亚洲精品中文字幕| 亚洲国产精品成人AV无码久久综合影院 | 亚洲VA中文字幕无码毛片| 东京热加勒比无码少妇| 亚洲国产精品无码av| 亚洲中文字幕成人在线| 精品久久久久中文字| 精品久久久久久中文字幕人妻最新 | 娇小性色xxxxx中文| 国产亚洲情侣一区二区无码AV| 日韩精品无码一区二区三区不卡| 亚洲精品99久久久久中文字幕| 中文字幕无码精品亚洲资源网久久| 大学生无码视频在线观看| 黄桃AV无码免费一区二区三区| 无码国产精品一区二区免费模式| 最新国产精品无码| 曰批全过程免费视频在线观看无码| 亚洲中文无韩国r级电影| 亚洲乱码中文字幕手机在线| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线中文 | 免费A级毛片无码A∨中文字幕下载| 亚洲色偷拍区另类无码专区| 久久综合一区二区无码| 中文字幕无码久久人妻| 久久人妻AV中文字幕| 天堂а√中文最新版地址在线|