zoukankan      html  css  js  c++  java
  • [http] 从http1到http3

    引言 

    cloudflare说他们跟google和firefox在开发实现http3。并且tls1.3也是他们推的。

    [https://www.cnblogs.com/hugetong/p/13442633.html]

    1.0


    96年开始http1.0的时代。他有很多缺点.
    # 因为是tcp+ssl承载,所以在发送数据包之前需要六个包的握手交互。
    # 一个tcp链接只承载一次http交互,然后就断了。而tcp是慢启动的,刚开始都很慢,无法利用带宽。

    1.1

    1.1有了应用层的keep alive。一个tcp可以交互多次,解决了慢启动和频繁捂手的overhead。
    但是还有新的问题:
      # request与response是ping pong模式的。无法充分利用tcp的全双工。效率很差。
      # 因为ping pong所以都是串行,所以如果想并行就需要多个tcp连接。

    2.0

    2.0为了解决1.1的问题,而出现。采用多个stream达到并行与全双工的目的,但是依然有缺点:
      # tcp并不知道上层http2的多通道复用,所以一个tcp丢包。所有的http2 stream都要等待。
      # http2的同一个respons或request的分段成多个frame的header与data仍然需要连续发送。

    3.0

    3.0为了解决2.0的这个问题。让http3跑在quic之上。http3不在提供多通道功能,而由quic提供,
    这样quic就知道http的每一个通道的状态,通道彼此独立,不再干扰。

    另外的特性:
      # quic将tcp与tls的握手融合在一起,三个包就同时完成了传输层与加密层的握手。
      # 支持连接的迁移。
      # 支持zero RTT,握手还没建立之前,就开始发送数据。


    参考(以上全部内容都来自这里):https://blog.cloudflare.com/http3-the-past-present-and-future/

  • 相关阅读:
    Material和SharedMaterial的区别
    unity 字典序列化的问题
    序列化到本地
    数据分离
    太久没更 重回博客园
    Unity下替换模型后 之前生成的Prefab中的原模型脚本不会丢失
    Enum.Parse
    Assert断言机制
    20170612
    Unity Cookie
  • 原文地址:https://www.cnblogs.com/hugetong/p/13442633.html
Copyright © 2011-2022 走看看