当请求具有某些可接受的 accept-encoding header 值时,为什么 http.sys(IIS 之前)return badrequest?

Why does http.sys (before IIS) return badrequest when requests have certain acceptable accept-encoding header values?

给定一个 Web 应用程序(在 IIS 中托管的 netcoreapp3.0)- 任何具有 Accept-Encoding header 特定值的请求都不会到达该应用程序。 http.sys 解析并吐出一个 400 - BadRequest。

即 Accept-Encoding: application/gzip,gzip

问题似乎是“/”字符。

我们无法控制客户,并且不想让他们 conform/change 满足他们客户的要求。他们的请求与其他(非 IIS)服务器一起工作。

除非我对 spec 的解读不正确——我相信上述值对 header 有效。 考虑过在 github - dotnet/aspnetcore 中询问或报告错误 - 但不确定它是否是错误。

感谢任何建议。

想避免 Kestrel w/apache | nginx 反向代理。

据我所知,accept和accept-Encoding是不一样的header。所以你看错文章了

正确的 RFC 文章是:https://www.rfc-editor.org/rfc/rfc7231#section-5.3.4

  The "Accept-Encoding" header field can be used by user agents to
   indicate what response content-codings (Section 3.1.2.1) are
   acceptable in the response.  An "identity" token is used as a synonym
   for "no encoding" in order to communicate when no encoding is
   preferred.

     Accept-Encoding  = #( codings [ weight ] )
     codings          = content-coding / "identity" / "*"

所以它不支持“/”。没有办法修改设置允许IIS访问错误header.