IIS 有一个可配置的阈值,用于过滤掉“太大”的请求,因此可能会对服务器进行 DoS。此类请求产生代码 404.13。然而,HTTP 的代码 413Request Entity Too Large
看起来正是针对这种情况的。
为什么返回代码 404 而不是代码 413?
IIS 有一个可配置的阈值,用于过滤掉“太大”的请求,因此可能会对服务器进行 DoS。此类请求产生代码 404.13。然而,HTTP 的代码 413Request Entity Too Large
看起来正是针对这种情况的。
为什么返回代码 404 而不是代码 413?
我不能说为什么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现在称为“有效负载太大”