Closed AdrianHu99 closed 5 years ago
默认情况下建立 TCP 连接不会断开,只有在请求报头中声明 Connection: close 才会在请求完成后关闭连接。
一个 TCP 连接是可以发送多个 HTTP 请求的。
单个 TCP 连接在同一时刻只能处理一个请求
在 HTTP/1.1 存在 Pipelining 技术可以完成这个多个请求同时发送,但是由于浏览器默认关闭,所以可以认为这是不可行的。 在 HTTP2 中由于 Multiplexing 特点的存在,多个 HTTP 请求可以在同一个 TCP 连接中并行进行。
那么在 HTTP/1.1 时代,浏览器是如何提高页面加载效率的呢?主要有下面两点:
维持和服务器已经建立的 TCP 连接,在同一连接上顺序处理多个请求。
和服务器建立多个 TCP 连接。
浏览器对同一 Host 建立 TCP 连接到数量有没有限制?
有。Chrome 最多允许对同一个 Host 建立六个 TCP 连接。不同的浏览器有一些区别。
https://mp.weixin.qq.com/s/TfebZ3-atixL61cjNBjU6w