为什么 IIS 7.0 return 无效的 HTTP 状态代码?

Why does IIS 7.0 return invalid HTTP status codes?

IIS 7.0 documentation shows that IIS can return status codes (like 401.1) that do not conform to RFC7231 表示:

The status-code element is a three-digit integer code giving the result of the attempt to understand and satisfy the request

为什么 IIS return 不兼容的状态代码会破坏兼容的客户端实现?

您对 IIS 文档的解释是错误的。

如果您使用 Wireshark 等工具仔细分析 IIS/HTTP.sys 生成的 HTTP 响应消息,您会发现它们仅包含 RFC 要求的三位数状态代码。

但是,在 IIS 日志文件以及其他 traces/error 页面中附加了子状态代码以更好地对实际错误进行分类。

Keep in mind IIS has been out there for decades. So if anything is non-compliant, it is less likely to identify this late.