http1.0 2.0 3.0的区别

http1.0 2.0 3.0的区别

  1. HTTP/1.0

    • 基本特点

      • 请求 - 响应模式:HTTP/1.0 采用简单的请求 - 响应模式。客户端发送一个请求,服务器返回一个响应,然后连接就会关闭。例如,当浏览器请求一个网页时,它发送一个 HTTP 请求给服务器,服务器处理请求并返回网页内容,之后连接就终止了。
      • 无状态性:每个请求都是独立的,服务器不会记住之前的请求信息。这意味着如果一个网页包含多个资源(如图片、脚本等),浏览器需要为每个资源单独建立连接并发送请求。
    • 性能问题

      连接建立开销大:由于每次请求都要建立和关闭连接,对于包含多个资源的网页,会产生大量的连接建立和关闭开销。比如,一个网页有 10 张图片,浏览器需要建立 10 次连接来获取这些图片,这会导致较长的加载时间。

      • 队首阻塞(Head - of - Line Blocking):在一个连接中,如果一个请求没有及时得到响应,后续的请求就会被阻塞。例如,在一个连接中发送了三个请求 A、B、C,若请求 A 因为某种原因(如服务器处理慢)没有得到响应,请求 B 和 C 即使已经准备好被服务器处理,也必须等待请求 A 完成,这会影响性能。
  2. HTTP/2.0

    • 性能优化
      • 二进制分帧层(Binary Framing Layer):HTTP/2.0 引入了二进制分帧层,将 HTTP 消息分解为更小的帧(Frame)。这些帧可以交错发送,而不是像 HTTP/1.0 那样按照顺序发送完整的请求和响应。例如,一个请求可以被分成多个帧,与其他请求的帧在同一个连接中交错发送,这样可以更高效地利用网络带宽。
      • 多路复用(Multiplexing):允许在一个连接上同时发送多个请求和接收多个响应,解决了 HTTP/1.0 中的队首阻塞问题。比如,浏览器可以同时发送多个资源(如图片、脚本等)的请求在同一个连接上,服务器也可以同时返回这些资源的响应,这些请求和响应的帧在连接中独立传输,互不干扰。
      • 头部压缩(Header Compression):使用 HPACK 算法对 HTTP 头部进行压缩。因为 HTTP 头部信息在每次请求和响应中都存在,而且可能包含一些重复的字段,通过压缩头部可以减少网络传输的数据量。例如,对于一些经常出现的头部字段(如User - AgentAccept等),可以进行高效的压缩。
    • 连接管理改进
      • HTTP/2.0 采用了基于帧的流(Stream)概念,一个连接可以包含多个流,每个流可以独立地发送和接收数据。这使得服务器可以更灵活地处理来自客户端的多个请求,同时客户端也可以更好地控制请求的优先级。例如,对于一个网页,浏览器可以将关键资源(如 HTML 内容)的请求设置为高优先级,将不太关键的资源(如广告图片)的请求设置为低优先级。
  3. HTTP/3.0

    • 解决传输层问题
      • HTTP/3.0 主要是为了解决 HTTP/2.0 在传输层(TCP)上仍然存在的问题。由于 TCP 的一些特性(如队首阻塞在 TCP 层面仍然可能发生,特别是在丢包的情况下),HTTP/3.0 基于 UDP 协议来构建。例如,在网络出现丢包时,UDP 不像 TCP 那样等待重传丢失的数据包,而是可以继续传输其他数据,避免了因为一个数据包丢失而导致整个连接的阻塞。
      • QUIC 协议(Quick UDP Internet Connections):它是 HTTP/3.0 的底层传输协议。QUIC 在 UDP 的基础上,增加了类似 TCP 的连接管理、可靠性保证等功能。它通过使用数据包编号、确认应答和重传机制等,来确保数据的可靠传输,同时避免了 TCP 的一些性能瓶颈。例如,QUIC 的连接建立比 TCP 更快,它采用了 0 - RTT(Round - Trip Time)的连接建立机制,在某些情况下可以更快地开始数据传输。
    • 性能提升
      • 由于 QUIC 协议的优化,HTTP/3.0 在移动网络和网络状况不佳的环境下,能够提供更好的性能。例如,在频繁切换网络(如从 Wi - Fi 切换到移动数据)的场景中,QUIC 可以更快地恢复连接并继续传输数据,减少了数据传输的中断时间,提升了用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值