我的移动应用程序需要发送 Ajax 请求并了解服务器是否关闭或服务器处于活动状态但出现错误之间的区别。
我知道如果服务器出现错误,服务器将返回 50X 代码的响应。
但是如果服务器宕机了,会发生什么呢?客户端会得到什么错误?
我搜索了一下,但结果让我很困惑 - 人们建议,如果您的服务器正在维护,则应将其设置为以代码 503 响应。但我无法理解这一事实 -服务器已关闭,它怎么能返回 503 响应呢?
答案1
通常是前端负载均衡器发送503服务不可用如果实际的 Web 服务器宕机,则会出现错误。如果您没有负载平衡器,并且其后面的服务器宕机,或者负载平衡器宕机,则客户端将收到连接超时。如果服务器已启动但 Apache 未启动,则客户端将获得连接被拒绝。
如果服务器瘫痪,AJAX 调用本身将返回错误。
response = url.open("http://...");
if (response == NULL) { /* handle Connection timeout / Conn refused */ }
在 503 情况下,您的 AJAX 调用实际上执行了 HTTP 请求,只是错误代码表示出现了问题。例如:
response = url.open("http://...");
if (response.code == 503) { /* handle service unavailable */ }
希望有帮助:)