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. 猎豹移动(金山网络)2015校园招聘(c++project师)

    1.已知类MyString的原型为: class MyString { public: MyString(const char *str=NULL);//普通构造函数 MyString(const M ...

  2. Codeforces 474 F. Ant colony

    线段树求某一段的GCD..... F. Ant colony time limit per test 1 second memory limit per test 256 megabytes inpu ...

  3. 开源工具DbUtils的使用(数据库的增删改查)

    开源工具DbUtils的使用(数据库的增删改查) 一.DbUtils简介: DBUtils是apache下的一个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果 ...

  4. Nginx分时段限制下载速度解决方案(原创)_于堡舰_新浪博客

    Nginx分时段限制下载速度解决方案(原创)_于堡舰_新浪博客 Nginx分时段限制下载速度解决方案(原创)    (2011-03-02 16:40:49)    转载▼    标签:    ngi ...

  5. ACdream 1148(莫比乌斯反演+分块)

    传送门:GCD SUM 题意:给出N,M执行如下程序:long long  ans = 0,ansx = 0,ansy = 0;for(int i = 1; i <= N; i ++)   fo ...

  6. hdu1054(最小顶点覆盖)

    传送门:Strategic Game 题意:用尽量少的顶点来覆盖所有的边. 分析:最小顶点覆盖裸题,最小顶点覆盖=最大匹配数(双向图)/2. #include <cstdio> #incl ...

  7. CC++刚開始学习的人编程教程(9) Windows8.1安装VS2013并捆绑QT与编程助手

    我们在Windows8.1安装VS2013并捆绑QT与编程助手须要下列文件. 2. 在虚拟机中开启Windows8.1 3.然后选择VS2013的安装镜像. 4.将镜像拷贝到虚拟机. 5.我们装载这个 ...

  8. 【C#遗补】之Char.IsDigit和Char.IsNumber的区别

    原文:[C#遗补]之Char.IsDigit和Char.IsNumber的区别 Char中IsDigit和IsNumber的两个方法都是用来判断字符是否是数字的,那他们有什么区别 IsDigit    ...

  9. 为什么使用 React? Edit on GitHub

    为什么使用 React? React 是一个 Facebook 和 Instagram 用来创建用户界面的 JavaScript 库.很人多认为 React 是 MVC 中的 V(视图). 我们创造 ...

  10. PPP协议总结

    PPP协议总结 PPP协议是一种在点到点链路上传输.封装网络数据包的数据链路层协议,PPP支持同步/异步方式的链路上. 一. PPP支持的链路类型 1. 同步和异步专线 2. 同步拨号链路. 3. 异 ...