GZIP是否会被浏览器自动解压缩?

use*_*511 21 javascript c# iis jquery gzip

我在IIS 8.0中启用了gzip压缩,方法 是在Windows 8上启用IIS中的启用Gzip 我通过jquery ajax调用和C#代码从我的应用程序调用外部休息服务,目前我的外部Web服务不是gzip压缩的.如果我要求我的服务合作伙伴gzip他们的响应,我是否需要在jquery端的代码中编写任何解压缩逻辑,c#side或浏览器会自动为我解压缩响应?

Mar*_*ach 25

所有现代浏览器都可以处理gzip编码的响应.事实上,如果你看看他们的请求,他们会有一个标题,说明了Accept-Encoding: gzip他们对服务器说他们可以处理gzipped响应的方式.

重要的是,您的服务器可以返回gzip和未压缩的响应,具体取决于该标头的存在和值.如果客户端未发送Accept-Encoding标头,则不应压缩它.如果客户端确实发送了它,您可以选择使用gzip对响应进行编码.并非所有内容都需要压缩,因为它可能已经被压缩并且您正在浪费CPU周期.JPEG图像通常就是一个很好的例子.最有可能的是,IIS在这里做出了明智的决定,并且只在必要时压缩必要的内容.

您可以通过查看从服务器返回的响应标头并查找Content-Encoding: gzip标头来验证IIS是否正在执行的操作.这告诉客户端或浏览器,内容是使用gzip压缩编码的,它应该适当地解压缩它.

所有基于浏览器的请求(例如,AJAX/jQuery,常规请求)将自动解压缩而无需您的额外努力.浏览器是负责确定它是否可以处理gzip的客户端,如果是,则会添加Accept-Encoding标头.您的JavaScript代码将在您的响应处理程序中收到它的未压缩版本.

TL; DR:打开它通常是一个好主意,你不需要做额外的工作.