在IIS中配置json数据压缩

在Web应用性能优化的过程中,当后台数据库的性能优化到一定程度以后,性能瓶颈一般会转到网络传输层面。然而网络带宽一般是我们很难控制的,在企业局域网内部网络环境要好些,但是当需要通过互联网或VPN访问我们的系统时,网络就显得尤为重要。这时,在服务器CPU资源较为充足、或较容易扩展时,我们可以考虑对数据进行压缩。

可以直接在IIS7的界面上启用压缩选项,如下图所示(需要在安装IIS的时候安装此选项,默认不会安装):


我一直认为启用这两个选项,所有的请求都可以被压缩了,但今天深入研究了下,发现很多ajax请求返回的json数据都没有压缩。只压缩了一般的静态内容,如css、js文件和动态页面的内容。要看一个请求有没有被压缩,用Firebug看响应头就知道了:


现在一般浏览器都是支持gzip压缩的,请求头里面都有(deflate是另一种压缩格式)


目前,对于一般网站来说,都大量使用了json来传递数据,如果能够压缩这些数据,那么系统的性能必将大幅提升,当然前提是CPU资源充足。在查阅一番资料以后,发现可以通过配置Windows\System32\inetsrv\config\目录下的applicationHost.config文件来启用json数据的压缩。看来微软也是有很多后台配置没做到界面上来。该文件中关于压缩的配置默认是这样的(位于<configuration>节下面的<system.webServer>节):


在其中的<dynamicTypes>(即动态压缩类型)节中增加以下两个配置即可:

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

<add mimeType="application/json; charset=utf-8" enabled="true" />

注:用记事本添加完毕,保存时会提示权限错误,我采用的办法是另存到桌面上,再复制过去。

配置完毕后重启IIS,再用Firebug监控,就可以明显看到请求响应数据变小,gzip的压缩率一般可以达到30%以下,这意味这500KB的数据可以压缩到150KB以下。尽情享受压缩带来的顺畅吧,别忘了监控CPU使用率哦。

参考资料:http://forums.iis.net/p/1155809/1895877.aspx

原文: 点击打开链接


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值