HTTP各个版本的区别

HTTP/1.0——短连接版本

  • HTTP/1.0规定浏览器与服务器只保持短暂的连接,即每一次请求都需要与服务器建立一次TCP连接,服务器完成请求处理后立即断开TCP连接。服务器不会跟踪每个客户也不记录过去的请求。(说完就挂断)
  • 因此这样的连接无法复用,每个TCP连接只能发送一个请求,发送完毕连接关闭。
  • 这个版本的HTTP性能很差,因为TCP建立连接的过程是一个很耗时的过程。

HTTP/1.1——长连接版本

  • 为了解决1.0的缺陷,该版本最主要的改进就是引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用。(打完电话先不挂断,持续一小段时间,这段时间还可以继续沟通)
  • 当客户端和服务器端发现对方一段时间内没有活动时,就可以主动关闭连接。
  • 或者客户端在最后一个请求时,可以主动告诉服务器端要关闭连接。
  • 这个版本引入了管道机制,即同一个TCP连接里面,客户端可以同时发送多个请求。
  • 虽然1.1版本对1.0有了很大的提升,但是他还是存在缺点,在同一个TCP里边所有数据的通信都是按照次序的,服务器只有处理完一个回应,才会解决下一个回应要是前边某个回应处理的比较慢,就会出现后边很多回应等待的情况,这就是常说的队头阻塞

如下图所示,即一个HTTP/1.1的工作流程:

  • 在这里插入图片描述

HTTP/2.0——长连接版本(多路复用)

  • 有了持久连接和管道,大大提升了HTTP的效率,但是服务器还是顺序执行的,效率还有很大的提升空间
  • HTTP/2.0解决了1.1中存在的效率问题,采取多路复用,即在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一执行
  • 这样做的前提就是:它进行了二级制分帧,将所有的传输信息分割为更小的消息和帧,并对它们采用二进制格式的编码。
  • (通俗理解:老板可以同时下达多个命令,员工收到了A和B两个请求,于是先回应A,结果发现处理过程非常耗时,于是发送A已经完成的部分给老板,接着回应B请求,再发送A剩余下来的部分,A请求的两个部分形影再组合到一起发给老板)

如下图所示,即一个HTTP/2.0的工作流程:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值