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. 降低成本是永恒的追求(xamarin)

    减少为主线的成本始终是一个社会经济发展.经济活动似乎很.商业模式的出现相关.我记得早起写Web程序,真正的企业并不多忙.大部分时间处理与浏览器的问题之间的差异所带来. 有些型号也做了屏蔽这样的差别,有 ...

  2. OCP读书笔记(7) - 使用RMAN执行恢复

    7.Using RMAN to Perform Recovery 使用RMAN进行完全恢复system表空间文件丢失的恢复 模拟损坏: SQL> conn /as sysdba; SQL> ...

  3. jquery ajax协调SpringMVCD实现局部刷新IV

    feedback.jsp: <%@ page language="java" import="java.util.*" pageEncoding=&quo ...

  4. Nagios的客户端的安装

    一.Linux服务器的nagios客户端的安装 步骤: 1.  创建目录,上传文件到该目录 mkdir /data nagios-plugins-2.1.1.tar.gz nrpe-2.12.tar. ...

  5. Ajaxterm

    Index of /software/ajaxterm Ajaxterm Since Mon Feb 28 03:22:42 CET 2011, hosted here: github.com/ant ...

  6. Android中的动画具体解释系列【4】——Activity之间切换动画

    前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 ...

  7. 伤不起的戴尔台式机XPS8700脆弱的蓝牙

    http://en.community.dell.com/support-forums/desktop/f/3514/t/19520747.aspx 1.报价仅仅包含主机,并且不带音响(speaker ...

  8. 2014/08/23——OJ出现waiting...

    问题: 今天中午,裴主解决OJ他缓慢的问题后,开着.我跟着oj他递给发现了一个话题waiting该..... 和全哥.均觉得測评程序挂了.于是重新启动測系统,还waiting.....(測评系统的进程 ...

  9. UML它 时序图

    在本文中,我们重点谈谈UML时序图,UML包括在主时序图的建模元素:对象(Actor).生命线(Lifeline).聚焦控制(Focusofcontrol).消息(Message)等等. 一.UML时 ...

  10. springMVC中一个class中的多个方法

    在前面.已经可以利用SpringMVC进行简单的例子了,但是,在controller中我们实现了Controller接口.这样就必须实现handleRequest(HttpServletRequest ...