前言:现代浏览器对host的TCP连接数是有限制的,不然主机或服务器都受不了。
不同的浏览器支持的TCP并发连接数是不一样的。下面就是Firefox为例。
1.在Firefox地址栏输入:about:config
2.找到以下
network.http.max-connections;900 全局最大连接数 ----HTTP1.0
network.http.max-persistent-connections-per-server;6 单服务器最大连接数 ---HTTP1.1
network.http.max-persistent-connections-per-proxy;32 全局代理服务器最大连接数
以上我们可以看到Firefox最多允许对同一Host建立6个连接。
注:
因为HTTP1.0默认是不支持持久连接的,所以它的连接都是串行,那么自然他的最大连接数相对来说可以比较多。
而HTTP1.1 或HTTP2.0 默认是持久连接。(TCP连接复用)
而HTTP2.0是可以在一个TCP连接里走多个并行HTTP请求。
最后讲点无关紧要的:
我们的浏览器如果收到的HTML里面包含大量的图片,那么这些图片是以什么方式、顺序、建立多少连接才被下载下来呢?
答:如果图片资源都是在HTTPS连接上,那么浏览器在与服务器进行一个SSL握手之后,会与服务器商量能不能用HTTP2.0,如果能用,就可以使用了HTTP2.0的多路传输(Multiplexing)特性。这样一个TCP连接里面就可以走多个并行HTTP请求。效率大大增强。
如果没有或用不了HTTPS(HTTP2.0在HTTPS中实现的),那么就只能使用HTTP1.1。那么浏览器就会建立多个TCP连接(数量取决于浏览器本身配置)、或者与服务器维持连接,串行处理请求。