HTTP 状态代码 : differentiating between being over capacity and being down for maintenance

标签 http http-status-codes http-status-code-503

HTTP 状态代码 503 是 described in rfc2616当服务器“由于服务器的临时过载或维护而当前无法处理请求”时是相关的。

在某些情况下,应用程序可能会因维护而停机。在某些情况下,应用程序可能会超出容量。

在我正在开发的服务器应用程序中,我希望能够在 HTTP 响应中区分这两种情况,以便客户端应用程序可以了解服务不可用的更准确原因。

然后,客户端应用程序可以向用户显示相关的“容量过大”或“停机维护”通知。

我可以选择使用未定义的 5XX 状态代码(例如 520),但是如果有的话,我更愿意使用已定义的标准方法。

是否有定义的标准方法来区分 HTTP 响应中由于容量问题而不可用和由于维护不可用?

最佳答案

如果您不想定义自己的状态代码,您可以使用 503 并设置不同的自定义错误消息,根据是“重载”还是“停机维护”。

您还可以设置 Retry-After 响应 header 字段,例如,如果您知道何时完成维护并且服务器已备份。

状态代码的详细信息:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Retry-After 头字段的详细信息:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

关于HTTP 状态代码 : differentiating between being over capacity and being down for maintenance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15428866/

相关文章:

http - Angular2 需要异步获取的结果以允许访问路由

python - Tornado ioloop + 线程

python - 如何在 Tornado HTTP 服务器上通过 HTTP 让长任务成为 "cancellable"?

ios - 如何在 Swift 中从 WKWebView 获取 POST 请求正文?

rest - API响应部分失败并要求客户端重试的行业实践

Docker - 来自守护进程 : received unexpected HTTP status: 503 Service Unavailable 的错误响应

Azure 函数获取 503

validation - 对于验证失败,REST API 服务返回的适当 HTTP 状态代码是什么?

iphone - 如何检查来自 iOS 的 http 请求响应状态代码?

python - 资源暂时不可用 : mod_wsgi (pid=28433): Unable to connect to WSGI daemon process