HTTP/2, HTTP/3 and QUIC
Starting from the limits of HTTP/1.1, you observe HTTP/2 frames, header compression and HTTP/3 over QUIC with real tools, then enable and measure them on a server.
Level 401 · 15 lessons · 12 practice labs
Lessons
HTTP/2
- The limits of HTTP/1.1: head-of-line blocking
- Protocol negotiation with ALPN
- HTTP/2 frames and streams
- HPACK header compression
- Prioritisation and flow control
- Short task: count a page’s streams with nghttp
HTTP/3 and QUIC
- QUIC: reliable transport over UDP
- The QUIC handshake and 0-RTT
- Discovering HTTP/3 with Alt-Svc
- QPACK and independent streams
- Short task: connect and verify with curl --http3
On the server and in measurement
- Enabling HTTP/2 and HTTP/3 in Nginx
- Measuring the three protocols on the same page
- Early hints with 103 Early Hints
- Capstone: move a site to HTTP/3 and prove the gain
Practice labs
- Check a server's HTTP/2 support: Watch the ALPN negotiation with curl and show which protocol the server picks.
- Count a page's streams: Load the page with nghttp and list the streams opened and the size of each.
- Measure header compression savings: Fetch the same page over HTTP/1.1 and HTTP/2 and calculate the header bytes saved by HPACK.
- Show HTTP/1.1 head-of-line blocking: Show in the waterfall how one slow resource holds up the requests behind it.
- Compare two protocols on a lossy link: Add packet loss with tc and measure HTTP/2 and HTTP/3 load times.
- Fix stream priorities: The hero image arrives after small icons; adjust priority hints and show the improvement in LCP.
- Connect over HTTP/3: Connect to the lab server with curl --http3 and verify the reply really came over QUIC.
- Discover HTTP/3 via Alt-Svc: Read the server's Alt-Svc header and show from logs that the client switches protocol on the second request.
- Show the 0-RTT replay risk: Show that a POST sent in 0-RTT can be replayed and let the server accept only safe requests early.
- Enable HTTP/2 in Nginx: Add HTTP/2 to Lavanta Spa's site configuration and verify it with curl.
- Enable HTTP/3 in Nginx: Add a QUIC listener on UDP 443, send the Alt-Svc header and test the connection.
- Prove the migration gain: Measure one page on three protocols under two network conditions, tabulate the results and write your recommendation.
About this course
Starting from the limits of HTTP/1.1, you observe HTTP/2 frames, header compression and HTTP/3 over QUIC with real tools, then enable and measure them on a server.
What you will learn
- HTTP/2
- HTTP/3 and QUIC
- On the server and in measurement
Prerequisites
You should have practised the topics of the same path up to level 301.
Lab environment
Lessons run in your own Kali Linux terminal in the browser, connected to a private lab network. Nothing to install.
Frequently asked questions
- Is this course right for my level?
- The course is at level 401; it assumes you know the topics of the lower-level courses.
- Is there anything to install?
- No. Every lesson runs in your own lab environment that opens in the browser.
- How do lessons work?
- Each lesson has 8 to 10 steps and a short quiz. Early steps show the command to type, later steps give less help; if two attempts fail, the solution opens.
- Can I try it for free?
- Yes. The first three lessons of every course are free.