我很奇怪网站为什么会崩溃。
如果服务器收到的请求过多,它可能会将该请求排在等待列表中,并在所有先前的请求都得到处理后再处理该请求。这意味着该网站的请求将得到处理,尽管可能需要比预期更多的时间。
那么,网站是如何因服务器过载而崩溃的呢?
答案1
网站不会“崩溃”。
Web 服务器配置为,如果请求队列中的请求超过预定数量,则停止接受新访问者。当达到此限制时,错误信息被展示。
503服务不可用
由于服务器暂时过载或维护,服务器目前无法处理请求。这意味着这是一种暂时的情况,经过一段时间的延迟后会得到缓解。如果已知,延迟的长度可以在 Retry-After 标头中指示。如果没有给出 Retry-After,客户端应该像处理 500 响应一样处理响应。
Note: The existence of the 503 status code does not imply that a server must use it when becoming overloaded. Some servers may wish to simply refuse the connection.
答案2
在一个非常简单的情况下,等待列表可能会填满,并且服务器忙于处理/忽略新请求,以至于它可以有效地处理队列中的请求。
答案3
有很多方法:
- 服务器可用的带宽是有限的。如果攻击者能够用流量淹没目标网站的连接,他就可以让该网站下线。
- “将请求排在等待列表中,并在所有先前的请求都已处理后为其提供服务”排队请求本身就需要时间。如果攻击者发送请求的速度比服务器排队的速度快,他就可以让网站下线。
- Web 服务器依赖于其他资源,例如数据库服务器或文件系统。如果攻击者能够发送足够的请求来使数据库过载,他就可以关闭网站。