HTTP1.x , 2.0 , 3.0 版本之间的对比

文章内容总结自:b站博主“周哥教IT与编程”、“技术蛋老师”的相关视频。

HTTP1.0

1、采用短链接,每一次发送请求都要建立TCP的三次握手
2、没有host头域,那么在一个IP地址下,如果有使用多个虚拟主机,它们共享一个IP地址,就会报错400
3、不支持断点续传

HTTP1.1

1、采用长连接,但是客户端发送一个请求之后,必须收到对应请求的处理之后,才会发送下一个请求
2、支持断点续传,引入了range头域。
3、有host头域,解决了一台物理服务器上存在多个虚拟主机,它们共享一个IP地址的问题。
4、引入了缓存策略

  • HTTP缓存:所谓的HTTP缓存起始就是浏览器或者代理服务器会将最近的浏览数据等信息缓存下来,在没有过期之间,如果用户再次访问这些内容,就会直接从代理服务器或者浏览器中取得即可,不用去访问服务器。

  • 如图:在这里插入图片描述

  • 相应头部与HTTP缓存有关的关键字:
    cache-control:
    (1)max-age=31536000 :这个关键字max-age表示能够保存为缓存的最长时间,单位为秒
    (2)no cache : 表示要缓存,并且每一次使用缓存都需要与服务器进行确认,同时代理服务器不能对资源进行缓存
    (3)no store : 表示让浏览器不要缓存
    (4)private : 如果 cache-control显示的是private,表示资源只能给我这个浏览器缓存,其他什么代理服务器都不能进行缓存,说明这个页面是我特有的,其他人看不到。
    (5)public : 如果显示的是Public,表示浏览器和代理服务器都是可以缓存的。
    还有两个重要的表示缓存时间的首部,二者相互配合使用:
    (1)Expires : 表示缓存的过期时间
    (2)Last-modified :表示资源最后被修改的时间,用户可以通过检查自己修改资源的时间与Last-modified的时间是否一致,如果一致表示资源没修改,如果不一致就得让服务器返回新的资源。

HTTP2.0

1、采用长连接的同时改变了1.1版本中长连接所存在的阻塞问题,支持了当一个请求发送没有被处理还能发送其他请求,先完成其他的请求,等待后序在接收之前未被服务器处理的内容,实现了多路复用。
2、采用了二进制分帧,在会话层和应用层之间将之前的文本格式的传送内容转变为二进制的形式发送。
3、头部压缩,从而使得传送的数据量减少

HTTP3.0

1、使用UDP协议减少握手次数
2、避免TCP层面的阻塞问题
3、优化了重传策略,重传包和原包的编号不同,降低后序重传计算的消耗
4、使用更适合的流量控制
5、连接迁移,不再用TCP四元组确定一个连接,而是用一个64位随机数确定这个连接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仟各

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值