我做了一个简单的HTTP服务器来监听套接字连接。服务器代码限制了它可以同时持有的连接总数。
所以,我有以下几行代码:
do {
new_fd = accept(lfd, NULL, NULL);
nfds += 1;
...
if(nfds + 1 > ntotal){ // connection limit exceeded
set_headers( new_fd, /* HTTP status code here */ );
/* close socket after error had been sent */
}
}while(1);
在这种情况下,我感兴趣的是服务器在关闭套接字之前应该发送的HTTP状态代码。
发布于 2018-05-31 20:51:23
从来看,503似乎是为过载的服务器发送的适当的HTTP状态代码。
10.5.4 503服务不可用
由于暂时过载或服务器维护,服务器当前无法处理请求的。这意味着这是一种暂时的情况,经过一段时间的延迟后将会得到缓解。如果已知,则可以在重试后报头中指示延迟的长度。如果没有给出Retry-After,客户端应该像处理500响应一样处理响应。
注意: 503状态代码的存在并不意味着服务器在超载时必须使用它。一些服务器可能希望简单地拒绝该连接。
(强调我的粗体)
https://stackoverflow.com/questions/50620608
复制相似问题