zoukankan      html  css  js  c++  java
  • http压缩方法(IIS 6.0 与IIS 7.0的详解)

    在网上看了有关这方面的博客,再加上自己的实践,整理了一下,希望对大家有所帮助

    本片文章采用两种压缩方法:一种是在IIS上开启GZIP压缩,另一种方法是用CompressionModule压缩模块。下面我将分别对IIS 6.0 和 IIS 7.0 的两种方法进行举例。

    IIS 6.0

    部署IIS 6.0 开启GZIP压缩

    1、打开Internet信息服务(IIS)管理器,右击“网站”-->属性”,选择“服务”。进行如图一配置:

                                                                              图一

    2、在Internet信息服务(IIS)管理器,右击“Web服务扩展”-->“添加一个新的Web服务扩展”,在“新建Web服务扩展”框中输入扩展名“HTTP Compression”,添加“要求的文件”为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中“设置扩展状态为允许”;(见图二)

                                                                           图二

    3、使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),

    找到Location =“/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩

    如果需要压缩动态文件,则将HcDoDynamicCompression设置为”TRUE“,

    并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;

    如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为”TRUE“,

    并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等;

    HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数值在0-10, 默认为0。

    HcDynamicCompressionLevel属性说明:HcDynamicCompressionLevel Metabase Property

    HcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property

    说明: 这两个属性值一般推荐设置为9, 具有最佳性价比。

    </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
                js
                css
                swf
                html
                txt"
            HcOnDemandCompLevel="9"
            HcPriority="1"
            HcScriptFileExtensions="asp
                aspx
                dll
                exe"
        >
    </IIsCompressionScheme>

    注意:

    1、在编辑MetaBase.xml前需要停止IIS(开始-->管理工具 --> 服务 找到 IIS Admin Service然后停止)

    2、修改完成后开启IIS Admin Service

    CompressionModule压缩模块

    1、首先,将DC.Web.HttpCompress.dll放到项目的bin目录。

    2、配置web.config代码如下:

    配置信息
    <configSections>       
            <sectionGroup name="DCWeb">
                <section name="HttpCompress" type="DC.Web.HttpCompress.Configuration, DC.Web.HttpCompress" />
            </sectionGroup>
        </configSections>
    
        <DCWeb>
            <HttpCompress compressionType="GZip">
                <IncludedMimeTypes>
                    <add mime="text/html" />              
                </IncludedMimeTypes>        
            </HttpCompress>
        </DCWeb>
        <system.web>
            <httpHandlers>            
                <add verb="*" path="js.axd,css.axd" type="DC.Web.HttpCompress.CompressionHandler,DC.Web.HttpCompress"/>
                <add verb="*" path="*.gif" type="DC.Web.HttpCompress.ImageHandler,DC.Web.HttpCompress"/>
            </httpHandlers>
            <httpModules>
              <add name="HttpCompressModule" type="DC.Web.HttpCompress.HttpModule,DC.Web.HttpCompress"/>
          </httpModules>
        </system.web>

    IIS 7.0

    部署IIS 7.0 开启GZIP压缩:如图三

                                                                                                    图三

                                                                           图四

    CompressionModule压缩模块

    1、首先,将DC.Web.HttpCompress.dll放到项目的bin目录。

    2、配置web.config代码如下:

    webconfig的配置
     1  <configSections>       
     2         <sectionGroup name="DCWeb">
     3             <section name="HttpCompress" type="DC.Web.HttpCompress.Configuration, DC.Web.HttpCompress" />
     4         </sectionGroup>
     5     </configSections>
     6 
     7     <DCWeb>
     8         <HttpCompress compressionType="GZip">
     9             <!--设定是否启用cachefiles功能,并指定cache目录,默认为false-->
    10             <CacheSettings cacheFiles="true" path="cache" />
    11             <!--设定jspath及csspath,实际应用中可以不设置-->
    12             <PathSettings jsPath="kendo/js" cssPath="css" />
    13             <!--设定要压缩何种类型的资源,这里设定了压缩html和javascript,即除了aspx页面(包括所有axd资源)和js外,其它资源不会被压缩,例:如果要压缩gif,请添加<add mime="image/gif"/>-->
    14             <!--javascript有很多种表现类型,具体可以借助工具查看其类型-->
    15             <IncludedMimeTypes>
    16                 <add mime="text/html" />
    17                 <add mime="application/x-javascript" />
    18             </IncludedMimeTypes>
    19             <!--设定不压缩何种类型资源请使用:-->
    20             <!--<ExcludedMimeTypes>
    21                 <add mime="text/html" />
    22                 <add mime="application/x-javascript" />
    23             </ExcludedMimeTypes>-->
    24             <!--设定不启用压缩的页面路径,下面设定了Test目录下的default.aspx页面将不会启用压缩功能,但其它页面则正常启用压缩-->
    25             <!--<ExcludedPaths>               
    26                 <add path="~/Test/Default.aspx" />
    27             </ExcludedPaths>-->
    28         </HttpCompress>
    29     </DCWeb>
    30 
    31     <system.webServer>
    32         <handlers>          
    33             <add name="DC.Web.HttpCompress" verb="*" path="js.axd,css.axd" type="CompressionHandler"/>
    34         </handlers>      
    35         <modules>
    36             <!--设定启用压缩模块的参数-->
    37             <add name="HttpCompressModule" type="DC.Web.HttpCompress.HttpModule,DC.Web.HttpCompress"/>
    38         </modules>
    39     </system.webServer>

    注意:

    1、ExcludedMimeTypes及IncludedMimeTypes只需要配置一个就可以,如果像上面那样配置的话,则表明html和javascript类型被压缩。

    2、<CacheSettings cacheFiles="true" path="cache"/>

    那么项目下就必须存在cache这个目录,否则的话会出错,如果项目不想增加这个目录,只需要将这个配置节删掉即可!

     

    测试结果:

    在IIS 7.0 中使用CompressionMoudule压缩,压缩率为53.3%

    在IIS 6.0 中开启GZIP压缩的压缩率为: 67.3%(可根据在MetaBase.xml文件中的参数进行改变)

     总结:

    在IIS 7.0中使用CompressionModule压缩模块时引用的DC.Web.HttpCompress.dll可以压缩js、css文件。但在IIS 6.0中使用DC.Web.HttpCompress.dll文件时,对js、css文件就不起作用了。因此有个CompressionModule修复版。

    参考博客:

    CompressionModule修复版:http://blog.csdn.net/gulijiang2008/article/details/7089076(可以下载修复版的dll文件)

    CompressionModule压缩模块:http://www.cnblogs.com/0000/archive/2009/05/22/1487376.html

    部署IIS 6.0开启GZIP压缩:http://www.chinaz.com/server/2010/1026/139740.shtml 

  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/nanyaxu/p/2770550.html
Copyright © 2011-2022 走看看