给定一个 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 访问错误的标头。