Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

alt-svc: experimental support #3498

wants to merge 5 commits into from

alt-svc: experimental support #3498

wants to merge 5 commits into from


Copy link

@bagder bagder commented Jan 24, 2019

This is the alt-svc: parser. This is a prerequisite to allow upgrading to HTTP/3 correctly but can be used for other HTTP versions as well.


  • - read alt-svc file from disk (using documented file format
  • - 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
  • - 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/ 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
  • - add tests verifying curl acting on Alt-Svc, from header and from loaded cache

Left to work on after first merge

  • handle multiple response headers, when one of them says clear (should override them all)
  • using Age: value for caching age as per spec

There are probably a few more details too still missing.

The Alt-Svc spec
Planned curl alt-svc API

@bagder bagder mentioned this pull request Jan 25, 2019
15 tasks
bagder added a commit that referenced this pull request Feb 5, 2019
bagder added a commit that referenced this pull request Feb 13, 2019
@bagder bagder added HTTP HTTP/2 HTTP/3 h3 or quic related labels Feb 13, 2019
@bagder bagder force-pushed the bagder/alt-svc branch 5 times, most recently from 0d8d8bb to efa4277 Compare February 14, 2019 22:29
@bagder bagder changed the title [WIP] altsvc: add header parser and cache altsvc: add header parser and cache Feb 20, 2019
@bagder bagder changed the title altsvc: add header parser and cache alt-svc: experimental support Feb 27, 2019
Copy link
Member Author

bagder commented Mar 2, 2019

Rebased and polished for merge. If this doesn't trigger anything major, I will merge this as EXPERIMENTAL code in a day or two. Disabled by default.

@bagder bagder closed this in 98441f3 Mar 3, 2019
@bagder bagder deleted the bagder/alt-svc branch March 3, 2019 10:19
@lock lock bot locked as resolved and limited conversation to collaborators Jun 2, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
HTTP HTTP/2 HTTP/3 h3 or quic related

Successfully merging this pull request may close these issues.

None yet

1 participant