Buy commercial curl support from WolfSSL. We help you work
out your issues, debug your libcurl applications, use the API, port to new
platforms, add new features and more. With a team lead by the curl founder
himself.
Re: HTTP/3 options
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: Timothe Litt <litt_at_acm.org>
Date: Tue, 3 Jan 2023 12:27:49 -0500
On 03-Jan-23 11:24, Daniel Stenberg via curl-library wrote:
> Hi team,
>
> I started to write down some ideas for two options to ask for HTTP/3
> to be used by curl when we remove the experimental label for it.
> Hopefully during his coming spring.
>
> My notes exist only as a GitHub gist for now:
>
> https://gist.github.com/bagder/6475a32d7cdc0b54f2dd6545e9ded0ac
>
> Feel free to comment here or there.
>
There are already many --http[0-9.]+ and --http*-*options. It's not
easy for a user to sort out how they interact. Suspect the code has
similar challenges :-)
Rather than adding more, perhaps it's time for some simplification.
Something like:
--http (or simply https?:// in a URL) means try whatever CURL is built
with, highest to lowest version, modulo any knowledge it may have from
past attempts.
--http=3 - use http3, fall back to 2, 1.1, 1.0, 0.9, ...
--http=3. use http3 or die
--http=(3,1.1) - try http3, fall back to 1.1, 1.0...
--http=(3,1.1.) - try http3, 1.1 or die
--http=2. = Use http2 or die (roughly --http2 --http-prior-knowledge)
e.g. the arg is a list of protocol versions to try. Implicit is try
next lower, unless '.', which means 'stop on failure'
The existing options can be mapped into this scheme.
alt-svc really should be internal to CURL - e.g. in ~/.curl-altsvc.cache
or some such. The ma (max-age) value is enough for the cache
expiration. Clearing the cache is a good option to have, but I don't
see why curl would need user involvement otherwise.
--http says that the user wants something specific. So if the --http
list omits a protocol, it doesn't matter if the alt-svc header/cache
says it's available. That could be included in --verbose output to hint
that there may be a newer (better?) option.
While the library can certainly continue to have endless options, the
command line really should be more Do What I Mean, especially by default.
Timothe Litt
ACM Distinguished Engineer
--------------------------
This communication may not represent the ACM or my employer's views,
if any, on the matters discussed.
Received on 2023-01-03
Date: Tue, 3 Jan 2023 12:27:49 -0500
On 03-Jan-23 11:24, Daniel Stenberg via curl-library wrote:
> Hi team,
>
> I started to write down some ideas for two options to ask for HTTP/3
> to be used by curl when we remove the experimental label for it.
> Hopefully during his coming spring.
>
> My notes exist only as a GitHub gist for now:
>
> https://gist.github.com/bagder/6475a32d7cdc0b54f2dd6545e9ded0ac
>
> Feel free to comment here or there.
>
There are already many --http[0-9.]+ and --http*-*options. It's not
easy for a user to sort out how they interact. Suspect the code has
similar challenges :-)
Rather than adding more, perhaps it's time for some simplification.
Something like:
--http (or simply https?:// in a URL) means try whatever CURL is built
with, highest to lowest version, modulo any knowledge it may have from
past attempts.
--http=3 - use http3, fall back to 2, 1.1, 1.0, 0.9, ...
--http=3. use http3 or die
--http=(3,1.1) - try http3, fall back to 1.1, 1.0...
--http=(3,1.1.) - try http3, 1.1 or die
--http=2. = Use http2 or die (roughly --http2 --http-prior-knowledge)
e.g. the arg is a list of protocol versions to try. Implicit is try
next lower, unless '.', which means 'stop on failure'
The existing options can be mapped into this scheme.
alt-svc really should be internal to CURL - e.g. in ~/.curl-altsvc.cache
or some such. The ma (max-age) value is enough for the cache
expiration. Clearing the cache is a good option to have, but I don't
see why curl would need user involvement otherwise.
--http says that the user wants something specific. So if the --http
list omits a protocol, it doesn't matter if the alt-svc header/cache
says it's available. That could be included in --verbose output to hint
that there may be a newer (better?) option.
While the library can certainly continue to have endless options, the
command line really should be more Do What I Mean, especially by default.
Timothe Litt
ACM Distinguished Engineer
--------------------------
This communication may not represent the ACM or my employer's views,
if any, on the matters discussed.
-- Unsubscribe: https://lists.haxx.se/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html
- application/pgp-signature attachment: OpenPGP digital signature