我有一个包含多个后端数据库的系统。有时我无法联系其中一个进行特定操作,我想告诉客户重试此操作。
我应该给404(即我无法确认因为数据库无法访问而未找到用户的请求)?
或者我应该返回503,因为我只是不确定某些内容不存在,因为我无法验证用户对数据库中的请求是否已关闭?
根据https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503
的解释,我的偏好是503答案 0 :(得分:1)
第一部分:虽然MDN非常适合研究,但我会坚持相关的RFC进行讨论。在这种情况下,那将是RFC 7231。
您的偏好确实是正确的:503表示服务暂时中断,可能会在以后解决。这很可能是由于上游服务失败造成的。比如数据库。
在这里投掷404将会有一点“我无法证明Schrödinger's Cat已经死亡或活着。所以我断言它已经死了。”