【问题标题】:IIS 8.5 Static Compression missing Content-Encoding response header, yet Failed Request Tracing shows compression with gzipIIS 8.5 静态压缩缺少 Content-Encoding 响应标头,但 Failed Request Tracing 显示使用 gzip 进行压缩
【发布时间】:2024-01-13 01:42:01
【问题描述】:

我观察到 Content-Encoded 响应标头丢失,特别是 Content-Encoded: gzip。我正在使用static content compressiondynamic content compression 功能从未安装过。我安装它,启用它,然后再次测试。这一次,Content-Encoded: gzip 出现在响应中。问题是为什么响应头出现在动态内容压缩而不是静态内容压缩?我相当肯定 IIS 正在将 gzip 应用于静态内容压缩。原因如下:

  1. 我有一个修改 HTML 页面响应的 IIS URL 重写出站规则。出站规则产生错误 500.52,URL 重写模块错误 - 对 HTTP 响应的内容进行编码(“gzip”)时,无法应用出站重写规则。规则不是问题,只是据报道正在应用 gzip 的证据。我禁用了规则。这是线索 #1。

  2. 线索 #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


    【解决方案1】:

    静态压缩在工作时会添加 Content-Encoded 标头。

    如果启用失败请求跟踪和跟踪静态压缩模块。你会看到这个。

    这意味着如果静态文件不经常被点击,则静态压缩将不起作用。

    如果您将此请求转发数十次。然后你会看到那个标题。

    请注意,压缩的最小文件大小有限制。您可以在 IIS manager->server node->configuration manager->system.webServer/httpCompression->minfileforcomp

    中修改该值

    【讨论】:

    • 太棒了!谢谢你的信息。我会试一试,然后报告我的发现。
    最近更新 更多