你猜一个 TCP 连接上面能发多少个 HTTP 请求

1.参考:
(1)你猜一个 TCP 连接上面能发多少个 HTTP 请求【非常好,值得多看】
https://zhuanlan.zhihu.com/p/61423830

2.个人理解
(1)一个TCP连接上可以发送多个HTTP请求
(2)现代浏览器(或应用程序)在与服务器建立一个tcp链接后,
在http/1.0中,一个服务器在发送完一个http响应后,会断开链接。但是这样每次请求都会重新建立和断开tcp链接代价过大。所以随标准中没有设定,某些服务器对Connection:keep-alive的Header进行了支持。这样tcp链接可以被重用。
在http/1.1中,就把Connection头写进标准,并默认开启持久链接,除非请求中写明Connection:close,那么浏览器和服务器之间是会维持一段时间的tcp链接。在http/1.1中单个tcp连接在同一时刻只能处理一个请求,需要串行。
在http/2中,提供了Mutiplexing多路传输特性,可以在一个TCP链接中同时并发完成多个http请求。
(3)浏览器对同一个host建立tcp连接的数量有限制,Chrome最多允许对同一个host建立留个tcp连接。
(4)如果收到的html中包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接使用什么协议被下载下来的呢?
答:如果图片都是https连接并且在同一个域名下,那么浏览器在ssl握手之后会和服务器商量能不能使用http2,如果能的话就使用Mutiplexing复用功能在这个连接上进行多路传输。不过也未必会所有挂在这个域名的资源
都会使用一个tcp连接去获取,但是可以确定的是Mutiplexing很可能会被用到。
如果发现用不了http2,或者用不了https,就只能使用http/1.1。那浏览器就会在一个host上建立多个tcp连接,这些连接会在空闲的时候被用了发送新的请求。如果所有的连接都正在发送请求则只能等待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值