0

I did some testing of HTTP3 and got the surprising result that HTTP3 has more overhead for single requests than HTTP1.1 or HTTP2. Surprising, as it is advertised the other way round.

What I did was using curl (version 8.8.0 with HTTP3 support compiled in) against different servers and monitored the network transfers using tcpdump.

I used the --http1.1, --http2, --http3 options of curl respectively to force direct usage of the desired HTTP version. (I checked that there aren't any TCP packets at all with --http3, it really uses HTTP3 directly.)

It tried it against a self-hosted NGINX 1.26.0, google.com and the example server of python-aioquic (http3_server.py).

From my self-hosted servers I transfered just a 5-byte dummy file, for Google I asked for https://google.com/x (resulting in a 404 and some blurb).

This is what I get:

Number of packets:

Server http1.1 http2 http3
NGINX 19 21 25
python http.server / aioquic 14 15
Google 20 32 28

Total bytes transferred:

Server http1.1 http2 http3
NGINX 4502 4538 10394
python http.server / aioquic 2279 4955
Google 9804 9946 13701

Any ideas what is wrong here?

omgold
  • 11
  • 2

0 Answers0