【发布时间】:2014-06-23 09:25:15
【问题描述】:
如果缺少必需的参数,http 服务能否返回 HTTP 400(错误请求)?当我阅读时,似乎应该只在请求中的语法错误时返回 http 400,但是我可以这样处理缺少的参数吗?
【问题讨论】:
如果缺少必需的参数,http 服务能否返回 HTTP 400(错误请求)?当我阅读时,似乎应该只在请求中的语法错误时返回 http 400,但是我可以这样处理缺少的参数吗?
【问题讨论】:
您是从客户端的角度还是从服务器的角度询问?从客户端的角度来看,服务器可以以任何理由返回任何错误;这是你无法控制的。一个好的服务器会在它告诉你它永远不会满足请求的情况下返回错误 400,因为它认为请求有问题。错误 400 的唯一解决方案是读取服务器请求的规范并在代码中修复请求。如果缺少必需的参数,您肯定必须阅读服务器的规范并修复您的代码,因此错误 400 是(有点)合适的。
如果您编写服务器代码,则应始终返回最合适的错误,请记住,报告错误的目的是客户端可以向用户报告问题,或者客户端可以尝试修复问题或适当处理,否则客户可能需要更改代码来解决问题。报告不正确的错误代码可能会使客户端感到困惑或强制客户端代码在访问您的服务器时应用黑客攻击,当服务器代码被修复时,这些黑客攻击可能会中断。也就是说,对于缺少的必需参数,我找不到明显比 400 更正确的错误代码。
【讨论】: