假设我们还处于在HTTP/1.1时代,那个时候没有多路传输,当浏览器拿到一个有几十张图片的网页该怎么办呢?肯定不能只开一个TCP连接顺序下载,那样用户肯定等的很难受,但是如果每个图片都开一个TCP连接发送一个HTTP请求,那么电脑或者服务器都可能受不了,要是有1000张图片的话总不能开1000个TCP连接吧,你电脑同意NAT也不一定会同意。
有。chrome最多允许对同一个Host建立六个连接。不同的浏览器有一些区别。
如果图片都是HTTPS连接并且在同一个域名下,那么浏览器在SSL握手之后会和服务器商量能不能使用HTTP2,如果能的话就使用Multiplexing功能在这个连接上进行多路传输。不过也未必会所有挂在这个域名上的资源都会使用一个TCP连接去获取,但是可以确定的是Multiplexing很有可能会被用到。
如果发现用不了HTTP2呢?或者用不了HTTPS(现实中的HTTP2都是在HTTPS上实现的,所以只能使用HTTP/1.1)那浏览器就会在一个HOST上建立多个TCP连接,连接的数量的最大限制取决于浏览器设置,这些连接在空闲的时候被浏览器用来发送新的请求,如果所有的连接都正在发送请求呢?那其它的请求就只能再等等了。