HTTP1.1的并发,一般都有限制4-10个的并发,例如这篇文章里提到的:
https://www.cnblogs.com/sunsky303/p/8862128.html
但是这个和http2的多路复用的区别在哪里,为什么很多讲解多路复用的文章里都提到 HTTP1.1只能接受一个请求后再发送一个请求: 见
https://www.nihaoshijie.com.cn/index.php/archives/698/
提到的问题5
HTTP1.1的并发,一般都有限制4-10个的并发,例如这篇文章里提到的:
https://www.cnblogs.com/sunsky303/p/8862128.html
但是这个和http2的多路复用的区别在哪里,为什么很多讲解多路复用的文章里都提到 HTTP1.1只能接受一个请求后再发送一个请求: 见
https://www.nihaoshijie.com.cn/index.php/archives/698/
提到的问题5
层级不一样。HTTP 应用层,TCP 是传输层。
HTTP/1.0 里,每一次 HTTP 请求,就要建立一个 TCP 链接。而 TCP 的建立开销很大。
为了解决这个问题,HTTP/1.1 引入了 Keep-Alive,可以一个 TCP 链接上发送多个 HTTP 请求,但这个协议模型本身还是在 HTTP/1.0 上修修补补,缺点还是有的,也就是同一个 TCP 链接上,多个 HTTP 请求彼此间是阻塞的,也就是请求 A 先得到响应后,请求 B 才会开始发送。
那能不能一个 TCP 链接既可以发送多个 HTTP 请求、每个 HTTP 请求之间彼此还不阻塞呢?HTTP/2.0 应用而生,引入 Stream,解决了这个问题。
你发的第二个链接里的流程图里对上面“阻塞”和“不阻塞”的对比已经画的很明白了。
HTTP 的并发限制,是浏览器做的(防止一个网页引入了巨多的资源、全都同时开启下载导致系统资源被迅速耗尽),如果不是浏览器、自己写 HTTP 客户端,是没这个限制的。