HTTP协议解密

HTTP/1.1

performance problems

  • serialized request (one after one)

HTTP/2

HTTP/2 ([HTTP/2]) introduced a binary framing and multiplexing layer to improve latency without modifying the transport layer.

  • binary protocol
  • multiplexing
  • traffic control
  • data stream priority
  • header compression
  • server push

frames

  • DATA
  • HEADERS
  • PRIORITY
  • RST_STREAM
  • SETTINGS
  • PUSH_PROMISE
  • PING
  • GOAWAY
  • WINDOW_UPDATE
  • CONTINUATION
  • ALTSVC
  • ORIGIN
  • CACHE_DIGEST

streams

multiplexing

HTTP/3

.

Why Do We Need HTTP/3

  • The Real Problems with HTTP/2
  • TCP is the main protocol that provides crucial services such as reliability and in-order delivery to other protocols such as HTTP.
  • The downside of TCP
    • QUIC is needed because TCP, which has been around since the early days of the Internet, was not really built with maximum efficiency in mind.
    • TCP also takes a full network round trip to complete before anything else can be done on a connection.
    • TCP sees all of the data it transports as a single “file” or byte stream, even if we’re actually using it to transfer several files at the same time.

What is QUIC

  • QUIC is a generic transport protocol (much like TCP)
  • QUIC 本可以替代 TCP,成为新一代的基础协议;但因为现存的绝大部分互联网设备基本上不会动态更新,导致新的协议很难推广,于是才利用起已知的 UDP 协议,封装成了上层协议
  • We can call QUIC as TCP/2 (a much advanced version of TCP)

The Big Changes

  • QUIC deeply integrates with TLS - 协议内置 TLS
  • QUIC supports multiple independent byte streams - 多路 Stream
  • QUIC uses connection IDs - 4 元组变动时,无需重新建立连接
  • QUIC uses frames - 数据包可以做到服务端与客户端自定义格式
  • TLS Comparison
  • Package Comparison

References

Get Things Done
Built with Hugo
Theme Stack designed by Jimmy