IIS 8 开启 GZIP压缩来减少网络请求的消耗

什么是gzip

gzipGUNzip的缩写,最早应用于unix系统的文件压缩。HTTP协议上的gzip编码是一种用来改进web应用程序性能的技术,web服务器端和客户端必须同时支持gzip。目前主流的浏览器都支持该协议,常见的服务器Apache,Nginx,IIS也都支持gzip
gzip通过对文件中相似的部分进行替换压缩,压缩比率通常在3到10倍左右,可以大大的减少服务器的带宽。在实际应用中,我们主要对.js,.css,.json等静态文件进行压缩。
那么,客户端和服务器是如何通信来支持gzip的呢。

  • 首先,客户端发送http请求的时候会带上请求头accept-encoding,并将其值设置为gzip。表明浏览器支持gzip
  • 服务器在接收到这个请求之后,判断浏览器是否支持gzip,如果支持的话,则向浏览器发送压缩后的内容,否则发送未经压缩的内容。一般情况下,服务端和浏览器都支持gzipresponse header返回的内容中包含content-encoding:gzip
  • 浏览器在接收到服务端的响应之后,判断该响应是否被压缩。如果被压缩,则先解压再展示内容。

    原理如下图所示:
    IIS 8 开启 GZIP压缩来减少网络请求的消耗

如何在IIS中开启gzip

我们这里服务器使用windows server 2012, IIS版本为v8.5
首先,打开IIS管理器,定位到相应的站点,选择功能视图,点击压缩。
IIS 8 开启 GZIP压缩来减少网络请求的消耗

如果提示动态内容压缩没有安装,打开 服务器管理器,点击管理,选择添加角色与功能。

IIS 8 开启 GZIP压缩来减少网络请求的消耗
勾选 服务器角色 > web服务器 > 性能 > 动态内容压缩。进行安装。
安装完毕之后点击 服务器界面,点击配置编辑器。
IIS 8 开启 GZIP压缩来减少网络请求的消耗

IIS 8 开启 GZIP压缩来减少网络请求的消耗

IIS 8 开启 GZIP压缩来减少网络请求的消耗

IIS 8 开启 GZIP压缩来减少网络请求的消耗