我有一个有多个后端数据库的系统。有时我无法联系到它们中的一个来执行特定操作,我想告诉客户端重试此操作。
我是否应该给出一个404 (即我无法确认因为数据库无法访问而没有找到用户的请求)?
或者我应该返回503,因为我不能确定某些东西不存在,因为我不能验证用户对已关闭的数据库的请求?
根据https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503的解释,我的首选是503
发布于 2017-04-29 07:53:27
首先:虽然MDN非常适合研究,但我会坚持使用相关的RFC进行讨论。在本例中,它将是RFC 7231。
您的偏好确实是正确的:503旨在指示服务中的临时中断,可能会在以后解决。这很可能是由上游服务失败引起的。例如数据库。
在这里抛出404会有一种“我无法证明Schrödinger's Cat是死是活的感觉,所以我断言它已经死了。”
https://stackoverflow.com/questions/43636284
复制相似问题