HTTP协议
HTTP0.9、HTTP1.0每个请求单独建立一个TCP连接,请求完成连接断开;
HTTP1.1可以持久连接,TCP建立连接后不会立即关闭,多个请求可以复用同一个TCP连接,同时请求可以并行,但是不同浏览器对并行次数有个数限制,以下是各个浏览器的并发次数;
HTTP2发送请求时,既不需要排队发送,也不需要排队返回,降低了传输时间;
HTTP/2.0理论上可以在一个TCP连接上发送无数个HTTP请求,而这些HTTP请求在浏览器看来,只是一个连接,所以避免了同源并发个数限制的问题。
HTTP3目前还在草案阶段,使用 QUIC(Quic UDP Internet Connection)是谷歌制定的一种基于UDP的低时延的互联网传输层协议。替换 TCP,彻底规避了 TCP 传输的效率问题。
测试
如下代码示例,定义一个 HTML 并在页面打开时加载 8 张图片。
查看源码,可以看到
即 chrome 同时最多 6 个 http 请求, 255 个 WebSocket 请求。
http 请求, 也是 tcp 连接数量。