浏览器的最大并发数(http1.1)

  • HTTP/1.1:每个资源请求通常需要单独的TCP连接,尽管支持Keep-Alive机制,允许在同一个TCP连接上连续发送多个请求。但通常浏览器限制并发TCP连接数(例如,每个域名最多6个并发连接)。

  • HTTP/2:引入了多路复用机制,在一个TCP连接上可以并发发送多个请求和响应,这显著提高了传输效率。因此,在HTTP/2中,一个域名通常只需要一个TCP连接即可并发处理多个请求。

HTTP/1.1 和 HTTP/2的连接机制

HTTP/1.1
  • 多连接:浏览器通常对每个域名同时建立多个TCP连接来并发处理多个请求。
  • Keep-Alive:HTTP/1.1引入了Keep-Alive头部,允许在一个TCP连接上连续发送多个请求,减少连接建立和关闭的开销。
  • 并发连接数限制:通常浏览器限制每个域名的并发连接数(例如,6个并发连接)。
HTTP/2
  • 单连接多路复用:在一个TCP连接上并发处理多个请求和响应,每个请求/响应都有一个唯一的流ID,所有流共享同一个连接。这大大提高了传输效率,减少了延迟。
  • 头部压缩:HTTP/2使用HPACK压缩算法来减少HTTP头部的大小,提高了传输效率。
  • 优先级和流量控制:HTTP/2允许客户端指定请求的优先级,并对流量进行细粒度控制。

示例

假设你要加载一个包含多个资源的网页:

HTTP/1.1
1. example.com/index.html
2. example.com/style.css
3. example.com/script.js
4. example.com/image1.jpg
5. example.com/image2.jpg
6. example.com/data.json

每个资源可能会使用单独的TCP连接,但浏览器通常会对每个域名限制并发连接数(例如6个),多余的请求会排队等待。

请求示例:(虽然比较模糊,还是可以看到请求总是有6个同时返回,后续的都需要等待)
很明显的一个队头堵塞,后续请求需要等待前面的请求返回值才能继续获取结果
请添加图片描述

HTTP/2
1. example.com/index.html
2. example.com/style.css
3. example.com/script.js
4. example.com/image1.jpg
5. example.com/image2.jpg
6. example.com/data.json

所有资源请求共享一个TCP连接,利用多路复用机制并发发送和接收数据。

结论

在HTTP/2中,通常一个域名只需要一个TCP连接即可并发处理多个请求,这显著提高了传输效率,减少了延迟和资源消耗。而在HTTP/1.1中,尽管支持Keep-Alive机制,但通常会对每个域名建立多个TCP连接,并受到并发连接数的限制。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值