HTTP/3
HTTP over QUIC
HTTP
1.0
1.1
2.0
Blocking Request
TCP
Keep Alive
Host (Header)
Cache Control
Range
Multiplexing
Server Push
Header Compression
Binary Framing
Multiplexing
Open
Close
Open
Close
Open
Close
Case: Request Multiple Resources
HTTP 1.0
HTTP 1.1
Keep Alive
Open
Close
HTTP 2.0
Multiplexing
Header Compression
HTTP/3
Connection Migration
UDP
Force TLS
Transport Layer Protocol
TCP vs UDP
TCP Connection
SYN
SYN+ACK
ACK
HTTP
SYN
SYN+ACK
ACK
Client Hello
Server Hello
Server Cert
Client Cert
Verify Server Cert
Verify Client Cert
Key Exchange
(RSA, DH)
TLS
UDP Connection
UDP
No more HOL Blocking
Connection Migration
IP: x.x.x.150
IP: x.x.y.115
No handshake when base network changed
Between different cell sites or WiFi Hotspot
Usage
Implements
Cloudflare
nginx
server {
listen 443 ssl; # TCP listener for HTTP/1.1
listen 443 http3 reuseport; # UDP listener for QUIC+HTTP/3
ssl_protocols TLSv1.3; # QUIC requires TLS 1.3
ssl_certificate ssl/www.example.com.crt;
ssl_certificate_key ssl/www.example.com.key;
add_header Alt-Svc 'quic=":443"'; # Advertise that QUIC is available
add_header QUIC-Status $quic; # Sent when QUIC was used
}
Danke
HTTP/3
By Chia Yu Pai
HTTP/3
- 539