12、一个TCP连接可以对应几个HTTP请求?

如果维持连接,一个 TCP 连接是可以发送多个 HTTP 请求的。

 

13、一个 TCP 连接中 HTTP 请求发送可以一起发送么(比如一起发三个 请求,再三个响应一起接收)?

HTTP/1.1 存在一个问题,单个 TCP 连接在同一时刻只能处理一个请求,意思是说:两个请求的生命周 期不能重叠,任意两个 HTTP 请求从开始到结束的时间在同一个 TCP 连接里不能重叠。

在 HTTP/1.1 存在 Pipelining 技术可以完成这个多个请求同时发送,但是由于浏览器默认关闭,所以可以 认为这是不可行的。在 HTTP2 中由于 Multiplexing 特点的存在,多个 HTTP 请求可以在同一个 TCP 连 接中并行进行。

那么在 HTTP/1.1 时代,浏览器是如何提高页面加载效率的呢?主要有下面两点:

1. 维持和服务器已经建立的 TCP 连接,在同一连接上顺序处理多个请求。

2. 和服务器建立多个 TCP 连接。