August 12th, 2024

Comparing HTTP/3 vs. HTTP/2 Performance (2020)

Cloudflare has launched HTTP/3, enhancing internet performance with UDP, reducing head-of-line blocking, and offering 0-RTT support. Over 113,000 zones have activated it, showing mixed real-world performance results.

Read original articleLink Icon
Comparing HTTP/3 vs. HTTP/2 Performance (2020)

Cloudflare has introduced support for HTTP/3, the successor to HTTP/2, which aims to enhance internet performance. As of now, over 113,000 zones have activated HTTP/3, with experimental support available in browsers like Google Chrome, Firefox, and others. HTTP/3 is based on UDP, which allows for improved performance by reducing head-of-line blocking issues present in HTTP/2's TCP connections. This means that if a packet is lost, only the affected stream is interrupted, allowing others to continue. Additionally, HTTP/3 features 0-RTT support, enabling faster connection startups by eliminating the need for a full TLS handshake. Benchmark tests indicate that HTTP/3 performs better than HTTP/2 in terms of time to first byte (TTFB), averaging 176ms compared to 201ms for HTTP/2. However, performance can vary based on factors like congestion control algorithms. In real-world tests, HTTP/3 showed slightly slower performance than HTTP/2, likely due to differences in congestion algorithms used. Cloudflare continues to support the latest drafts of HTTP/3 and is optimistic about its future, anticipating broader browser support as the standard finalizes.

- HTTP/3 is designed to improve performance over HTTP/2 by using UDP instead of TCP.

- It reduces head-of-line blocking and offers faster connection startups with 0-RTT support.

- Benchmark tests show HTTP/3 has a 12.4% improvement in time to first byte compared to HTTP/2.

- Real-world performance tests indicate HTTP/3 may be slightly slower than HTTP/2 due to different congestion control algorithms.

- Cloudflare is committed to supporting HTTP/3 as it evolves and gains wider adoption.

Link Icon 9 comments
By @londons_explore - 3 months
> For a small test page of 15KB, HTTP/3 takes an average of 443ms to load

443 milliseconds!! When typical user latency is sub 50 milliseconds, requiring 443 milliseconds to get a lightweight page displayed on the screen is terrible.

Users perceive 100 milliseconds as near-instant, and that ought to be the target. With 50 milliseconds of network latency, and 0-rtt support, that gives 50 milliseconds for server and client processing+rendering. Ought to be very do-able.

The fact it has not been done really is a failure of software engineering as an industry - we always favour more layers of abstraction over perfecting the user experience.

By @superkuh - 3 months
Now compare the performance of HTTP/3 versus HTTP/1.1 over multiple years when the website isn't run by a corporation paying an engineer to babysit and maintain it. The HTTP/3 CA TLS HTTPS-only setup would start failing due to CA TLS problems eventually (in a year or two) while the HTTP/1.1 HTTP+HTTPS would remain accessible forever. This is the core problem with HTTP/3 for human people.

It is one that could be fixed by developers if only the correct flags were set during compilation of the HTTP/3 libs and during their linking to the relevant browsers. But no one seems to care about human use cases. It's corporate security uber alles.

By @jsnell - 3 months
(2020)
By @albertopv - 3 months
I'm out of the loop, anyone knows if performance improved aince 2020?
By @niomarketing - 3 months
what's the report about?
By @mobilemidget - 3 months
I prefer TCP for web traffic rather than UDP.