http1,http2和http3之间的区别

HTTP1.1 和 HTTP1.0 的区别有哪些?

  • 1.长链接

    • 早期 HTTP1.0 的每一次请求都伴随着一次三次握手的过程,并且是串行的请求,增加了不必要的性能开销

    • HTTP1.1 新增了长链接的通讯方式,减少了性能损耗

  • 2.管道

    • HTTP1.0 只有串行发送,没有管道

    • HTTP1.1 增加了管道的概念,使得在同一个 TCP 链接当中可以同时发出多个请求

  • 3.断点续传

    • HTTP1.0 不支持断点续传

    • HTTP1.1 新增了 range 字段,用来指定数据字节位置,开启了断点续传的时代

  • 4.Host头处理

    • HTTP1.0 任务主机只有一个节点,所以并没有传 HOST

    • HTTP1.1 时代,虚拟机技术越来越发达,一台机器上也有可能有很多节点,故增加了 HOST 信息

  • 5.缓存处理

    • 在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准

    • HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。

  • 6.错误状态响应码

    • 在HTTP1.1中新增了24个错误状态响应码,如410(Gone)表示服务器上的某个资源被永久性的删除等。

HTTP2 和 HTTP1.1 的区别是什么?

  • 1.头部压缩

    • 在 HTTP2 当中,如果你发出了多个请求,并且它们的头部(header)是相同的,那么 HTTP2 协议会帮你消除同样的部分。(其实就是在客户端和服务端维护一张索引表来实现)

  • 2.二进制格式

    • HTTP1.1 采用明文的形式

    • HTTP/2 全⾯采⽤了⼆进制格式,头信息和数据体都是⼆进制

  • 3.数据流

    • HTTP/2 的数据包不是按顺序发送的,同⼀个连接⾥⾯连续的数据包,可能属于不同的回应。(对数据包做了标记,标志其属于哪一个请求,其中规定客户端发出的数据流编号为奇数,服务器发出的数据流编号为偶数。客户端还可以指定数据流的优先级,优先级⾼的请求,服务器就先响应该请求)

HTTP3 和 HTTP2 的区别是什么?

  • 1.协议不同

    • HTTP2 是基于 TCP 协议实现的

    • HTTP3 是基于 UDP 协议实现的

  • 2.QUIC

    • HTTP3 新增了 QUIC 协议来实现可靠性的传输

  • 3.握手次数

    • HTTP2 是基于 HTTPS 实现的,建立连接需要先进行 TCP 3次握手,然后再进行 TLS 3次握手,总共6次握手

    • HTTP3 只需要 QUIC 的3次握手

  • 4.IO多路复用

    • 如:在⼀个连接中,服务器收到了客户端 A 和 B 的两个请求,但是发现在处理 A 的过程中⾮常耗时,索性就先回应 A 已经处理好的部分,再接着回应 B 请求,最后再回应 A 请求剩下的部分。

    • HTTP/2 可以在⼀个连接中并发多个请求或回应

  • 5.服务器推送

    • 服务器可以主动向客户端发送请

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值