2

我一直在使用503 Service Unavailable或 down 进行维护。

然而,一些 http 客户端库,即 axios 将 503 视为可重试错误。

如果响应是由于高负载而产生的,那么重试它是有意义的,但 503 也适合功能切换的情况。

对人们使用的其他代码有什么建议吗?

4

1 回答 1

2

状态代码是属于“通过网络传输文档”域的元数据。状态码的共享语义允许通用 HTTP 感知组件智能地行动。

所以你应该做的是考虑 HTTP 语义。

例如,如果您的服务器无权访问由请求的目标 uri 标识的资源的当前表示,那么您应该发出404 Not Found响应。如果请求被禁止,则403 Forbidden. 或者451 Unavailable for Legal Reasons当这是预期的含义时。

换句话说:这取决于。

但它不依赖的是“功能标志”;这是一个实现细节。“统一接口”是一种外观,它隐藏了因一种实现而异的技术细节。从外部看,您的 API 提供了您的机器只是另一个无聊的 Web 服务器的错觉。

于 2020-02-18T21:48:03.023 回答