6

IIS 有一个可配置的阈值,用于过滤掉“太大”的请求,因此可能会对服务器进行 DoS。此类请求产生代码 404.13。然而,HTTP 的代码 413Request Entity Too Large看起来正是针对这种情况的。

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

4

1 回答 1

3

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

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

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

于 2014-09-26T19:10:11.873 回答