IIS7构造Gzip压缩

本文来自Kevin Yang博客 作者:Kevin Yang

开启配置HTTP压缩(GZip)

在IIS7中配置Gzip压缩相比IIS6来说实在easy了很多。并且默认情况下就是启用GZip压缩的。

假设没有。则能够再功能视图下找到“压缩”项,进入之后就会看到“静态内容压缩”和“动态内容压缩”两个选项,勾上就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWVmaWdodGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

配置启用压缩的文件类型及其它选项

当开启GZip压缩之后,IIS并非对全部内容都启用了压缩,而是有选择的进行压缩。遗憾的是。我们无法直接在IIS7管理器中配置这些压缩选项。

我们首先须要在C:\Windows\System32\inetsrv\config目录下找到applicationhost.config文件。打开之后找到例如以下一节内容:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">

    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />

    <dynamicTypes>

        <add mimeType="text/*" enabled="true" />

        <add mimeType="message/*" enabled="true" />

        <add mimeType="application/x-javascript" enabled="true" />

        <add mimeType="*/*" enabled="false" />

    </dynamicTypes>

    <staticTypes>

        <add mimeType="text/*" enabled="true" />

        <add mimeType="message/*" enabled="true" />

        <add mimeType="application/javascript" enabled="true" />

        <add mimeType="*/*" enabled="false" />

    </staticTypes>

</httpCompression>

我们能够看到,IIS实际上是依据MIME类型来决定是否启用HTTP压缩的,以及压缩比之类的选项。能够看出,图片默认情况下是不被压缩的。这是由于图片的压缩比太低了。

我们注意到,对于Javascript来说,上面对不同的mime类型配置了不同的压缩方式。Javascript有三种常见的Mime类型,text/javascript,application/x-javascript。application/javascript。这三种类型都是合法的,在现代浏览器中也不存在什么区别。可是因为IIS7中Js文件的mime类型默认被设置为application/x-javascript。也就是说对于js文件,使用的是动态内容压缩而不是静态内容压缩,因此会导致js文件有时经过压缩的,有时却没有压缩。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWVmaWdodGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="color:rgb(42,42,42)">

因为js文件通常稳定之后不会再被改动了,因此建议改成静态压缩——即把dynamicTypes这一节中的application/x-javascript挪到静态压缩节中。

这样保证每次脚本都是被压缩过返回的。

静态压缩及动态压缩的差别

IIS7中的HTTP压缩分为“静态内容压缩”和“动态内容压缩”。事实上这两个名字第一次接触非常费解。

什么是动态内容什么又是静态内容?实际上,准确的翻译应该是“静态压缩”和“动态压缩”。

这两个词反应了IIS的压缩行为。

对于配置在staticTypes节中的mime类型,将会启用静态压缩,也就是说。当文件第一次被请求的时候。IIS会将其压缩,然后放入暂时目录中。下次再有人请求此文件时直接从暂时目录中取出压缩后的版本号而不用又一次运行压缩的过程。配置在dynamicTypes一节中的mime类型的http请求都将启用动态压缩。即每一次请求,主机都会对请求的内容——可能是存放在文件系统中的静态文件,也可能是ISAPI返回的内容——进行压缩,而不会对其进行缓存。这个压缩比率因主机性能不同而会有所调整。所以我们在请求js文件的时候才会发现js文件有时压缩有时不压缩的情况。

显而易见。静态压缩会占用一定的存储空间,可是速度快,而动态压缩不占用存储空间。可是占用CPU时间,并且压缩比不恒定。而对于经过ISAPI的请求。则不能使用静国家压缩。例如,对于WCF返回内容。

版权声明:本文博主原创文章。博客,未经同意不得转载。

IIS7构造Gzip压缩的更多相关文章

  1. IIS7 启用GZip压缩

    GZip压缩通常会达到70%以上的压缩率,如果是手机Web这无疑会使网站的访问速度大大增加,无论是CSS合并.JS合并.图片合并都不如GZip压缩来得简单直接.如果一个网页是100K,那么启用GZip ...

  2. IIS7启用GZip压缩

    本文转载自 http://www.cnblogs.com/kissdodog/p/6252129.html GZip压缩通常会达到70%以上的压缩率,如果是手机Web这无疑会使网站的访问速度大大增加, ...

  3. [转帖]IIS7配置Gzip压缩

    IIS7配置Gzip压缩 https://www.cnblogs.com/coce/p/6804373.html   II7中自带了gzip功能,理论上应该比ii6配置起来应该简单一点,但是容易出的问 ...

  4. IIS7配置Gzip压缩 JS压强失败的原因

    开启配置HTTP压缩(GZip) 在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的.如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内 ...

  5. IIS7配置Gzip压缩

    II7中自带了gzip功能,理论上应该比ii6配置起来应该简单一点,但是容易出的问题比较多.有的II7配置web服务器角色的时候可能没有安装启用动态内容压缩,所以这个钩子是灰色的,需要再次安装. 如图 ...

  6. IIS7.5打开GZip压缩,同时启用GZip压缩JS/CSS文件的设置方法[bubuko.com]

    IIS7.5或者IIS7.0开启GZip压缩方法:打开IIS,在右侧点击某个网站,在功能视图中的“IIS”区域,双击进入“压缩”,如图下图: 分别勾选“启用动态内容压缩”和“启用静态内容压缩”.这样最 ...

  7. iis7 压缩js文件和启用gzip压缩

    压缩js文件 打开IIS 7的配置文件:c:\windows\system32\inetsrv\config\applicationhost.config 在<staticContent loc ...

  8. IIS7.5开启GZip压缩

    在IIS7.5选择要开启GZip压缩的网站,在功能视图中找到并双击"压缩"图标,在压缩界面中钩选"启用静态内容压缩"和"启用动态内容压缩", ...

  9. IIS7.5配置Gzip压缩解决方案(转)

    开启配置HTTP压缩(GZip) 在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的.如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内 ...

随机推荐

  1. LLVM每日谈21 一些编译器和LLVM/Clang代码

    作者:闪亮宁(snsn1984) 一些自己的收藏LLVM/Clang代码,而他自己写一些一点点LLVM/Clang译器的代码.在这里把这些代码库分享出来,欢迎大家交流探讨. 1.crange http ...

  2. 【Cocos2d-X开发学习笔记】第01期:PC开发环境的详细搭建

    本文使用的是cocos2d-x-2.1.4版本 ,截至目前为止是最新稳定版 所谓的开发环境就是制作游戏的地方,打个比方读者就会十分清楚了.比如提到做饭,人们都会想到厨房.这是 因为厨房有炉灶.烟机.水 ...

  3. margin 等高布局

    <div id="main"> <div id="left"> 我是左边的内容的啦啦啦啦... .<br> 我是左边的内容的 ...

  4. 给公司部门设计的SOA架构(转)

    新来老大年前开会说:各位同学,公司业务越来越重,未来几年要成倍增长......,我们要梳理出一套新架构,才能更好的支持N万用户.....,以后升职加薪当上....打败..... 想想还有点小激动呢,于 ...

  5. Android 调用谷歌语音识别

    調用谷歌语音识别其实很简单,直接利用 intent 跳转到手机里面的谷歌搜索 代码也很简单,直接调用方法 startVoiceRecognitionActivity() 如果大家手机里面没有谷歌搜索, ...

  6. Http协议学习总结(转)

    因为项目中很多地方都与Http协议有关,零散的了解了一下Http协议,但是没有系统的学习过. 今天根据网上其他同学的整理,加上我的一些经验,我也整理了一份.当做学习记录吧. 一.什么是HTTP协议 H ...

  7. 已知直线上的两点 A(x1, y1), B(x2, y2) 和另外一点 C(x0, y0),求C点到直线的距离。

    数学知识太差,一点点积累,高手勿喷. 1. 先求出AB向量 a = ( x2-x1, y2-y1 ) 2. 求AB向量的单位方向向量 b = √((x2-x1)^2 + (y2-y1)^2)) a1 ...

  8. .Net C# Windows Service于server无法启动,错误 193:0xc1

    1.情况说明:的近期发展windows维修,当地win7系统正常.把server安装会失败. 图中的引导失败的例子.: 解决方法:执行->输入:eventvwr.msc    打开你的事件查看器 ...

  9. 用XAML做网页!!—页头

    原文:用XAML做网页!!-页头 接续上次进度,我们此次来制作页头. 首先要实现两侧边缘的美化,如下图所示: 在边缘处有一层朦胧的亮度反光效果,这也是通过简单的渐变实现的,而且我们在后面的每个区块中都 ...

  10. WPF换肤之八:创建3D浏览效果

    原文:WPF换肤之八:创建3D浏览效果 上节中,我们展示了WPF中的异步以及界面线程交互的方式,使得应用程序的显示更加的流畅.这节我们主要讲解如何设计一个具有3D浏览效果的天气信息浏览器. 效果显示 ...