2014-06-23 36 views
1

如果缺少必需的参数,HTTP服务能否返回HTTP 400(错误请求)?当我四处阅读时,似乎http 400应该仅仅在请求中的语法错误时被返回,但是我能否像这样处理一个缺失的参数?如果缺少必需的参数,HTTP服务能否返回HTTP 400(错误请求)?

+0

[HTTP 400(错误请求)的逻辑错误,而不是格式错误的请求语法的可能重复](http://stackoverflow.com/questions/4781187/http-400-bad-request-for-logical-error-not -malformed请求语法) – Thilo

回答

1

您是从客户的角度提问还是从服务器的角度来看?从客户的角度来看,服务器可以出于任何原因返回任何错误;它超出了你的控制范围。一个好的服务器会在它告诉你它不会满足请求的情况下返回错误400,因为它认为请求有问题。错误400的唯一解决方案是读取服务器请求的规范并在代码中修复请求。如果缺少一个必需的参数,当然你必须阅读服务器的规范并修复你的代码,所以错误400是(适合的)。

如果您编写服务器代码,则应始终返回最合适的错误,同时牢记错误报告的目的是客户端可以向用户报告问题,或者客户端可以尝试修复问题或正确处理问题,或者客户可能需要更改代码才能解决问题。报告不正确的错误代码可能会混淆客户端或强制客户端代码在访问您的服务器时应用黑客攻击,并有可能在服务器代码修复时破坏这些黑客行为。也就是说,我找不到一个错误代码,如果缺少必需的参数,它显然会比400更正确。

相关问题