服务器关闭时的 HTTP 状态代码?

Lak*_*hay 7 windows

我的移动应用程序需要发送 Ajax 请求并知道服务器是否已关闭或服务器是否处于活动状态但出现错误之间的区别。

我知道如果出现一些服务器错误,服务器将返回带有 50X 代码的响应。

但是如果服务器宕机了会发生什么。客户端会得到什么错误?

我进行了搜索,但让我感到困惑 - 人们建议您的服务器应该设置为在维护时以代码 503 响应。但我无法理解这样一个事实——服务器宕机了,它怎么能发回 503 响应??

MLu*_*MLu 7

如果实际的 Web 服务器关闭,通常是前端负载平衡器发送503 Service Unavailable错误。如果您没有负载均衡器并且其背后的服务器已关闭,或者负载均衡器已关闭,则客户端将收到Connection timeout。如果服务器已启动但 Apache 未启动,则客户端将收到Connection denied

在服务器关闭的情况下,AJAX 调用本身将返回错误。

response = url.open("http://...");
if (response == NULL) { /* handle Connection timeout / Conn refused */ }
Run Code Online (Sandbox Code Playgroud)

在 503 情况下,您的 AJAX 调用实际上执行了 HTTP 请求,只是错误代码表明存在问题。就像是:

response = url.open("http://...");
if (response.code == 503) { /* handle service unavailable */ }
Run Code Online (Sandbox Code Playgroud)

希望有帮助:)