【问题标题】:What HTTP error codes should be used for indicating an internal error?应该使用哪些 HTTP 错误代码来指示内部错误?
【发布时间】:2011-12-31 19:04:45
【问题描述】:

我开发了一个 REST 应用程序,我的应用程序的一个案例是:

用户在服务器端进行操作。一切顺利服务器正确接受数据,但是发生了一些错误,就像与数据库通信一样。我不想用错误代码返回它我想用成功代码发送它,但有一个指示错误的正文。我想发送 500、404 等错误代码。我的设计是否正确?我应该为我的案例返回哪个状态代码?

【问题讨论】:

  • 你可能应该尝试重写你的问题,因为它现在的方式不是很容易理解。

标签: http rest http-status-codes rfc2616


【解决方案1】:

如果服务器的操作可以在没有用户干预的情况下从这种数据库故障中恢复(例如,使用一些后台“清理进程”),那么成功状态代码可能是 OK 的;否则,返回服务器端错误状态码 (5xx) 更有意义。

【讨论】:

    【解决方案2】:

    在这种情况下,某种 5xx 错误是最合适的。

    500 表示某种内部服务器错误或

    503 表示服务不可用

    在此处查看 HTTP/1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 的所有错误代码

    如果合适的话,您应该始终为您的休息服务返回一个错误代码。返回成功代码但在响应中添加错误是不正确的做法。

    【讨论】:

      【解决方案3】:

      您可以在rfc2616查看状态定义

      我曾经实现过 rest 应用程序,但我总是返回一个状态码和一条消息,其中包含有关错误的更多信息。

      是的,数据库出现问题 503(服务不可用)

      关于这种topic at stackoverflow的问题很多...

      【讨论】:

        【解决方案4】:

        这可能会有所帮助:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - 在某些地方可能会模棱两可,但总的来说是一个易于阅读的 IMO。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-12
          • 2015-03-01
          • 2010-11-03
          • 2019-03-06
          • 2022-01-11
          • 2015-05-16
          • 2017-09-03
          • 1970-01-01
          相关资源
          最近更新 更多