当请求太大时,为什么IIS返回代码404.13而不是代码413?

sha*_*oth 5 asp.net iis http http-status-codes http-status-code-404

IIS具有可配置的阈值,用于过滤出“过大”的请求,因此有可能对服务器进行DoS。这样的请求产生代码404.13。但是HTTP的代码413 Request Entity Too Large看起来恰好适合这种情况。

为什么返回代码404而不是代码413?

Aur*_*mas 3

我无法解释为什么IIS 决定避免使用“请求实体太大”的官方代码并使用他们自己的版本。IIS 7(其中引入了 404.13,另请参阅此处了解更多状态代码)当然早于RFC 2068 413 的定义。有趣的是,IIS 5 和 6 使用了官方 413 代码。如果有的话,将 413 分类到 403(禁止)下可能更有意义。

此 IIS 7 问答建议您可以编写自己的 HttpModule 将 404.13 响应转换为 413 响应。

旁注:根据RFC 7231,413现在称为“有效负载太大”