Hi friends,

I hope most of you have noticed that the other day it was decided the next version of HTTP will be named HTTP/3 [1] (and it will be performed over QUIC instead of TCP, but that was known since before).

I've started on a "HTTP/3 explained" document [2] with the aim of explaining these new protocols (HTTP/3 and QUIC). The fundamentals are there and you can read it already and it should give you a decent first grasp, but it certainly isn't complete yet. I will gracefully appreciate comments, bug reports and improvements!

HTTP/3 (h3 for short) is done over QUIC instead of TCP and it opens up interesting new challenges for clients, and one of them is how to learn that a site supports it and then when to use h3 instead of h2 or h1. Servers will inform clients about their "h3 abilities" using the Alt-Svc response header [3] and the client can then connect with QUIC and do h3 requests instead.

For curl to speak h3 in the same manner as the browsers will, curl then needs to understand Alt-Svc headers as well and will need a few new ways to control this behavior in the API. I've started to collect some thoughts around how this should or could work for applications [4].

I have not yet started to actually write any code for h3 or quic support in curl. I plan to base that work on the ngtcp2 library [5], which only does quic so far. Possibly the h3 layer will then be done using the nghq library [6] (hq being the old name for h3) but this library is currently a bit behind the latest h3 drafts...

QUIC and HTTP/3 are scheduled to be "done" by July 2019.

It's a great time to be alive!

 [1] = https://daniel.haxx.se/blog/2018/11/11/http-3/
 [2] = https://daniel.haxx.se/http3-explained/
 [3] = https://tools.ietf.org/html/rfc7838
 [4] = https://github.com/curl/curl/wiki/QUIC-implementation
 [5] = https://github.com/ngtcp2/ngtcp2
 [6] = https://github.com/bbc/nghq


--

 / daniel.haxx.se
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html
  • HTTP/3 Daniel Stenberg via curl-library

Reply via email to