当请求具有某些可接受的接受编码标头值时,为什么 http.sys(在 IIS 之前)返回错误请求?



给定一个 Web 应用程序(托管在 IIS 中的 netcoreapp3.0(-- 任何具有接受编码标头特定值的请求都不会到达应用程序。 http.sys解析并吐出一个400 - BadRequest。

即,接受编码:application/gzip,gzip

问题似乎是"/"字符。

我们无法控制客户,并且不希望要求他们遵守/更改客户的要求。 他们的请求适用于其他(非 IIS(服务器。

除非我错误地阅读了规范 - 我相信上面的值对标题有效。 考虑过询问或报告github中的错误 - dotnet/aspnetcore - 但不确定它是否是一个错误。

感谢您的任何建议。

想要避免使用带 apache 的红隼 | nginx 反向代理。

据我所知,接受和接受编码不是同一个标头。所以你读错了文章。

正确的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 访问错误的标头。

相关内容

  • 没有找到相关文章

最新更新