当请求具有某些可接受的 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.
给定一个 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.