Alt-Svc
curl features EXPERIMENTAL support for the Alt-Svc: HTTP header.
Experimental
Experimental support in curl means:
- Experimental features are provided to allow users to try them out and
provide feedback on functionality and API etc before they ship and get
"carved in stone".
- You must enable the feature when invoking configure as otherwise curl will
not be built with the feature present.
- We strongly advice against using this feature in production.
- We reserve the right to change behavior of the feature without sticking
to our API/ABI rules as we do for regular features, as long as it is marked
experimental.
- Experimental features are clearly marked so in documentation. Beware.
Enable Alt-Svc in build
./configure --enable-alt-svc
Standard
RFC 7838
What works
- read alt-svc file from disk
- write alt-svc file from disk
- parse
Alt-Svc:
response headers, including ma
, clear
and persist
.
- replaces old entries when new alternatives are received
- unit tests to verify most of this functionality (test 1654)
- act on
Alt-Svc:
response headers
- build conditionally on
configure --enable-alt-svc
only, feature marked as
EXPERIMENTAL
- implement
CURLOPT_ALTSVC_CTRL
- implement
CURLOPT_ALTSVC
- document
CURLOPT_ALTSVC_CTRL
- document
CURLOPT_ALTSVC
- document
--alt-svc
- add
CURL_VERSION_ALTSVC
- make
curl -V
show 'alt-svc' as a feature if built-in
- support
curl --alt-svc [file]
to enable caching, using that file
- make
tests/runtests.pl
able to filter tests on the feature alt-svc
- actually use the existing in-memory alt-svc cache for outgoing connections
- alt-svc cache expiry
- test 355 and 356 verify curl acting on Alt-Svc, received from header and
loaded from cache. The latter needs a debug build since it enables Alt-Svc
for plain HTTP.
What is left
- handle multiple response headers, when one of them says
clear
(should
override them all)
- using
Age:
value for caching age as per spec
CURLALTSVC_IMMEDIATELY
support
CURLALTSVC_ALTUSED
support