HTTP 404与400的无效查询参数

时间:2018-08-03 16:17:29

标签: http-status-code-404 query-parameters http-status-code-400 http-status

这是我的请求网址:

http://server.com/app/user/getuser/?userId=9999

请注意,userId是查询参数。没有嵌入的路径参数。

我了解,如果请求URL为:http://server.com/app/user/getuser/9999,并且数据库中不存在ID 9999,则应使用404。

userId是查询参数的情况下应该使用什么HTTP状态?现在我返回的是400,而不是404。

1 个答案:

答案 0 :(得分:6)

我将使用 404未找到

为什么?

RFC 7231定义了 400错误请求响应,如下所示:

  

400(错误请求)状态码表示服务器由于某些原因(例如格式错误的请求语法,无效的请求消息框架或欺骗性的请求路由)而无法或将不会处理请求

...由于您的请求有效,并且您正尝试访问不存在的资源,因此我认为 404未找到状态更加合适。 RFC 7231的定义如下:

  

404(未找到)状态代码表示原始服务器未找到目标资源的当前表示,或不愿意透露该资源的存在。