您現在的位置: 网站首頁 / 網站建設 / 正文

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

作者: admin 发布: 2015-6-7 9:36:41 分类: 網站建設 閱讀: 次 查看評論

  一.摘要

  本文总结了如何为使用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壓縮.

  --cnblogs

  來源:SEO搜尋引擎優化 - SEO自學網 轉載注明出處!

? 上一篇下一篇 ?   本文關鍵詞: Gzip壓縮  

評論列表:

站長SEO學院
第一節:百度搜索引擎工作原理
第二節:建設對搜索引擎友好的站點
第三節:如何進行網站內容建設
第四節:整體優化、結構優化、網頁優化
第五節:移動搜索-明確移動搜索優化標准
百度SEO資料文檔
百度搜索引擎優化指南2.0
百度移動搜索優化指南2.0
網站分析白皮書(站長版)
移動站點該如何優化
建設對百度友好的站點
百度搜索引擎網頁質量白皮書
石榴算法-綠蘿算法-冰桶算法
新搜索時代下的優化策略
更多百度SEO資料文檔
站長推薦
DIV+CSS布局實例教程-Web標准
网站SEO優化常见问题汇总
SEO優化推广方案该如何写
SEO優化方案步骤
影響網站關鍵詞排名因素總結
影響谷歌搜索引擎排名的因素調查
手機移動端站點適配優化
最近發表