【问题标题】:Using HTTP status codes to reflect success/failure of Web service request?使用 HTTP 状态码来反映 Web 服务请求的成功/失败?
【发布时间】:2010-03-22 22:20:34
【问题描述】:

我正在实现一个返回 JSON 编码负载的 Web 服务。如果服务调用失败——比如说,由于参数无效——返回一个 JSON 编码的错误。但是,我不确定在这种情况下应该返回什么 HTTP 状态代码。

一方面,HTTP 状态代码似乎适用于 HTTP:即使返回应用程序错误,HTTP 传输本身 也是成功的,提示 200 OK 回应。

另一方面,RESTful 方法似乎表明,如果调用者试图发布到资源,并且请求的 JSON 参数不知何故无效,则 400 错误请求是合适的。

我在客户端使用 Prototype,它有一个很好的机制,可以根据 HTTP 状态代码(onSuccessonFailure)自动分派到不同的回调,所以我很想使用状态代码来指示服务成功或失败,但我很想知道是否有人对这方面的常见做法有意见或经验。

谢谢!

【问题讨论】:

    标签: javascript ajax json http prototypejs


    【解决方案1】:

    http 状态码仅用于指示应用程序响应的状态。 正如您所说,如果 json 参数因某种原因无效,则 400 状态代码 一个合适的答案。

    所以是的,使用 http 状态码是一个非常好的主意。此外,状态代码很容易理解,因为它们不会从一个应用程序(Web 服务)更改为另一个

    【讨论】:

      【解决方案2】:

      您绝对应该使用正确的状态代码,因为它们正是用于此目的,而不是指示 HTTP 请求本身的状态。通过这种方式,您可以在解析响应之前将响应重定向到适当的函数/分支,这将导致客户端的代码更加整洁。

      【讨论】:

        猜你喜欢
        • 2012-06-27
        • 2012-05-03
        • 2011-03-26
        • 1970-01-01
        • 2019-06-18
        • 2013-12-08
        • 1970-01-01
        • 2014-09-13
        • 1970-01-01
        相关资源
        最近更新 更多