我按照以下网址 在IIS 8.0中启用了gzip压缩。 我通过jquery ajax调用和C#代码从我的应用程序调用外部rest服务,目前我的外部网络服务没有gzip压缩。如果我要求我的服务伙伴gzip压缩他们的响应,那么我需要在jquery端和c#端编写任何解压逻辑,还是浏览器会自动为我解压缩响应?
我按照以下网址 在IIS 8.0中启用了gzip压缩。 我通过jquery ajax调用和C#代码从我的应用程序调用外部rest服务,目前我的外部网络服务没有gzip压缩。如果我要求我的服务伙伴gzip压缩他们的响应,那么我需要在jquery端和c#端编写任何解压逻辑,还是浏览器会自动为我解压缩响应?
所有现代浏览器都可以处理gzip编码的响应。实际上,如果您查看它们的请求,它们会有一个标题,大致说一下:Accept-Encoding: gzip
,这是它们向服务器表明它们可以处理gzip响应的方式。
重要的部分是,您的服务器可以根据该标头的存在和值返回gzip和未压缩的响应。如果客户端没有发送 Accept-Encoding
标头,您不应该对其进行压缩。如果客户端发送了它,您可以选择使用gzip编码响应。并非所有内容都需要压缩,因为它可能已经被压缩,而且您正在浪费CPU周期。 JPEG图像通常是一个很好的例子。最有可能的是,IIS也在此做出明智的决定,并且仅在必要时压缩什么。
您可以通过查看从服务器返回的响应头并查找Content-Encoding: gzip
头来验证IIS是否执行了正确的操作。这告诉客户端或浏览器,内容使用gzip压缩进行编码,应适当地解压缩它。
所有基于浏览器的请求(例如XHR / AJAX / jQuery,常规请求)都将自动解压缩,无需额外的努力。浏览器是负责确定是否可以处理gzip的客户端,并在需要时添加Accept-Encoding
标头。您的JavaScript代码将在响应处理程序中接收未压缩的版本。
简而言之:打开它通常是一个好主意,您不需要做额外的工作。