2016-04-25 45 views

回答

15

根据浏览器的实现情况,浏览器在使用HTTP/1.1时强加了6-8个连接的每个域的限制。 这允许每个域最多6-8个并发请求。

使用HTTP/2,浏览器每个域只能打开1个连接。然而,由于HTTP/2协议的复用功能,每个域的并发请求数不限于6-8,但它几乎是,不受限制地为

这是几乎无限的,即浏览器和服务器会限制通过HTTP/2 configuration parameterSETTINGS_MAX_CONCURRENT_STREAMS并发请求数。

典型限制大约为100(Firefox的默认值为network.http.spdy.default-concurrent - 请注意这里的spdy名称:它是HTTP/2协议的协议祖先),但根据浏览器可能会更大(或更小,通常较小)实施和您连接到的服务器上。

预计这些限制随着HTTP/2的发展和更广泛的使用而发生变化(与HTTP/1.1发生的方式相同:浏览器从2个连接开始,最终在6-8之后结束多年的使用,经验和调整)。

我不认为浏览器如何处理正常浏览的连接数量和并发请求以及XHR的使用情况,因此上面的解释也适用于XHR。

+2

客户端和服务器都可以指定'SETTINGS_MAX_CONCURRENT_STREAMS'。如果客户端为服务器指定了一个值,则表示服务器能够推送多少资源的限制。如果服务器将值指定给客户端,则表示客户端可以请求的项目数。我不确定Firefox是否只使用'network.http.spdy.default-concurrent'来指定服务器的限制,或者限制它的请求为同一个值。 – gapple

相关问题