【问题标题】:HTTP Response for Unsuccessful Handling of Request请求处理不成功的 HTTP 响应
【发布时间】:2014-07-11 17:37:06
【问题描述】:

假设我有一个 REST POST 端点:www.foo.com/id/X 其中X 代表一个数字。

我的服务器端伪代码如下所示:

performIdLookup(int id) { 

  if ( idExists(id) ) {
     return toJson(lookup(id)) // returns 200/OK Status Code with object as JSON
  }
  else {
     return HTTP_???_error 
  }
}

根据这个question,发送400 错误似乎并不在这里,因为用户提交了一个有效的请求,但服务器找不到它。

什么是正确的 HTTP 响应,为什么?

【问题讨论】:

  • 那是正确的错误404
  • 你现在应该已经记住了 404 - 做 web 开发;p
  • 404 没问题。顺便说一句,500 是内部服务器错误
  • @ScottSelby 500 应该未经身份验证。 500 Internal Server Error:“一般错误消息,当遇到意外情况并且没有更具体的消息适合时给出。”
  • @ScottSelby 由于响应是 JSON,这看起来像一个 REST API。对于这种情况,重定向不是一个好主意。

标签: rest http http-status-codes


【解决方案1】:

这很容易。

404 Not Found

如果/id/42 处没有资源,则该网址找不到资源找到

请参阅list of HTTP status codes

【讨论】:

  • 404 The server has not found anything matching the Request-URI 我不明白你对这篇文章的回答。是因为没有resource 住在idX 中吗?
  • @KevinMeredith - 你写了“服务器找不到它。”这正是 404 的用途
  • 服务器没有找到任何匹配Request-UR(Resource)I(Identifier)的东西。
【解决方案2】:

不是 400(错误请求)。但是 404(未找到)。是的,在这些情况下我们不习惯观看 404,但您可以添加一些自定义信息和响应。

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多