【发布时间】:2021-12-21 19:14:52
【问题描述】:
IIS 7.0 documentation 表明 IIS 可以返回不符合 RFC7231 的状态代码(如 401.1),其中表示:
status-code 元素是一个三位整数代码,给出尝试理解和满足请求的结果
为什么 IIS 返回不合规的状态代码会破坏合规的客户端实现?
【问题讨论】:
IIS 7.0 documentation 表明 IIS 可以返回不符合 RFC7231 的状态代码(如 401.1),其中表示:
status-code 元素是一个三位整数代码,给出尝试理解和满足请求的结果
为什么 IIS 返回不合规的状态代码会破坏合规的客户端实现?
【问题讨论】:
您对 IIS 文档的解释是错误的。
如果您使用 Wireshark 之类的工具仔细分析 IIS/HTTP.sys 生成的 HTTP 响应消息,您会发现它们仅包含 RFC 要求的三位数状态代码。
但是,在 IIS 日志文件以及其他跟踪/错误页面中附加了子状态代码以更好地对实际错误进行分类。
请记住,IIS 已经存在了几十年。因此,如果有任何不合规的地方,那么晚就不太可能发现。
【讨论】: