Afternoon HN,<p>I may have rather serendipitously implemented HTTP/3 support for a Flask-like CMS.<p>Does HTTP/3 reduce server requests by concatenating multi-resource requests into a single request conveyed through a "chained-path"?<p>For example:<p>Loading example.com/about requires loading style.css and favicon.ico.<p>HTTP/2 would request example.com/about, request style.css, request favicon.ico.<p>Does HTTP/3: request example.com/about & style.css & favicon.ico with a single request path similar to "/about/style.css/favicon.png"?<p>Any insight would be appreciated. Thanks!
AFAIK the semantics of HTTP/2 and HTTP/3 are the same, so no, but both /2 and /3 are able to multiplex these requests, with shared compressed header elements for example, onto a single underlying 'connection'.
> Does HTTP/3: request example.com/about & style.css & favicon.ico with a single request path similar to "/about/style.css/favicon.png"?<p>No. HTTP/3 can multiplex requests, but "/about/style.css/favicon.png" is a single, valid path. If you are seeing requests for that (specifically), then it's probably a bug.<p>As for HTTP/3 itself, NGINX is probably providing that. Mobile connections (well, really any connection that is prone to packet loss) benefits greatly from HTTP/3, which accounts for your speedup.<p>HTTP/3 also will use UDP streams in addition to the single TCP stream of HTTP/1.1 and HTTP/2.