【问题标题】:What is the opposite of 202 Accepted?202 Accepted 的反义词是什么?
【发布时间】:2014-11-07 16:41:32
【问题描述】:

我是一个纯粹主义者,因此当我的应用程序在保存数据时遇到问题时,我希望将正确的 http 状态代码返回给我的用户(其他服务)。

当您可以验证请求或者您知道您的服务器已死时,这很容易。但是如果两者都不是,会发生什么?

当一切正常,我可以保存数据时,我返回 202 Accepted。 无法保存数据,但数据确实正确,我的服务器工作正常,是别人的错,我应该返回什么?

特别是今天,我在没有粘性会话的数据库集群上执行 2 个相关查询时发现了一个保存问题。

我不想对我的用户撒谎。我想说“不,我无法保存数据”,但我不想责怪他们(4xx),这绝对不是内部服务器错误。

是否有“我无法执行您的指令”或“出现问题,请重试”的响应?

或者我只是把 500 看得太认真了,我应该用那个?

【问题讨论】:

    标签: http http-response-codes


    【解决方案1】:

    这绝对是一个 500 错误,请记住,从客户端的角度来看,您在后台使用的每个子系统或服务都是服务器的一部分。

    您可以在响应实体中更详细地解释发生了什么。

    来自rfc2616

    10.5 Server Error 5xx
    
       Response status codes beginning with the digit "5" indicate cases in
       which the server is aware that it has erred or is incapable of
       performing the request.
    

    【讨论】:

    • 我的问题是“服务器”(=se​​rvice) 并非无法执行刚刚遇到中断的请求,应该鼓励您再试一次。大多数客户倾向于将 500 视为服务的死亡,事实并非如此。
    • 503 说“暂时”不可用。
    • 但这甚至不是真的。它可用,您应该立即重试。我倾向于接受 500/503,但如果能完全找到符合目的的东西会很好。
    • 我想我正在寻找:600 Retry :) 或者如果必须的话,它可以进入 5xx。 530? :)
    • 我接受这个,因为目前没有更好的解决方案,但我仍然觉得应该有一个与责备无关的错误代码:)
    【解决方案2】:

    这取决于具体原因,但 503 Service Unavailable 可能是合适的,回退是通用的 500。维基百科有 a comprehensive list of status codes

    【讨论】:

      猜你喜欢
      • 2011-01-04
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多