qinxiaocha/daydayLearning

一个 tcp 连接能发几个 http 请求?

Opened this issue · 0 comments

如果是HTTP 1.0 版本协议,一般情况下,不支持长连接,因此在每次请求发送完毕之后,TCP连接即会断开,因此一个TCP发送一个HTTP请求,但是有一种情况可以将一条TCP连接保持在活跃状态,那就是通过Connection和Keep-Alive首部,在请求头带上 Connection: Keep-Alive ,并且可以通过Keep-Alive 通用首部中指定的,用逗号分隔的选项调节keep-alive的行为,如果客户端和服务端都支持,那么其实也可以发送多条,不过此方式也有限制,可以关注《HTTP 权威指南》4.5.5 节对于Keep-Alive连接的限制和规则;
而如果是HTTP 1.1 版本协议,支持了长连接,因此只要TCP连接不断开,便可以一直发送HTTP请求,持续不断,没有上限;
同样,如果是HTTP 2.0 版本协议,支持多用复用,一个TCP连接是可以并发多个HTTP请求的,同样也是支持长连接,因此只要不断开TCP的连接,HTTP请求数也是可以没有上限地持续发送,