【发布时间】:2024-01-13 01:42:01
【问题描述】:
我观察到 Content-Encoded 响应标头丢失,特别是 Content-Encoded: gzip。我正在使用static content compression。 dynamic content compression 功能从未安装过。我安装它,启用它,然后再次测试。这一次,Content-Encoded: gzip 出现在响应中。问题是为什么响应头出现在动态内容压缩而不是静态内容压缩?我相当肯定 IIS 正在将 gzip 应用于静态内容压缩。原因如下:
我有一个修改 HTML 页面响应的 IIS URL 重写出站规则。出站规则产生错误 500.52,URL 重写模块错误 - 对 HTTP 响应的内容进行编码(“gzip”)时,无法应用出站重写规则。规则不是问题,只是据报道正在应用 gzip 的证据。我禁用了规则。这是线索 #1。
线索 #2 是我启用了
Failed Request Tracing并观察到不仅应用了静态压缩,而且 StaticFileModule 将压缩文件存储在以下位置:C:\INETPUB\TEMP\IIS TEMPORARY压缩文件\我的网站\$^_GZIP_D^\INETPUB\WWWROOT\TEST.HTML。
我阅读了IIS HTTP Compression 上的 Microsoft 文档——我可能是错的——我没有看到任何表明 gzip 可以用于静态压缩的语言。根据以上两条线索,gzip 正在与静态压缩一起使用。
所以我回到最初的问题,即Content-Encoded 缺少static content impression 的响应标头,但有证据表明 IIS 不仅压缩静态内容,还使用gzip 压缩它。这只是一个错误吗?这是设计使然吗?
【问题讨论】:
标签: iis compression gzip iis-8.5 content-encoding