You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

服务器达到连接上限时应返回的正确HTTP状态码是什么?

问题:连接数超限的HTTP服务器应返回什么状态码?

我搭建了一个监听socket连接的简易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); 

我想了解在此场景下,服务器关闭socket前应返回的HTTP状态码。


回答

你应该返回 503 Service Unavailable 状态码,这是最贴合你当前场景的标准HTTP状态码:

  • 这个状态码的官方定义就是服务器暂时无法处理请求,通常是由于临时过载或维护,完美匹配你的连接数已满、暂时无法接受新连接的情况。
  • 额外优化建议:你可以在响应头里加上 Retry-After 字段,比如 Retry-After: 15,告诉客户端15秒后可以尝试再次连接,让客户端的错误处理逻辑更合理。

在你的代码流程里,先返回这个状态码再关闭socket的做法是正确的——确保客户端收到明确的错误提示后再终止连接,避免客户端一直处于等待状态。

内容的提问来源于stack exchange,提问作者jorge is not ai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:37:12