1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-23 16:48:49 -05:00

docs/ALTSVC: remove what works and the experimental explanation

Also, put the TODO items at the bottom.

Closes #4198
This commit is contained in:
Daniel Stenberg 2019-08-07 14:52:28 +02:00
parent f23d492777
commit 317076876a
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -2,21 +2,6 @@
curl features **EXPERIMENTAL** support for the Alt-Svc: HTTP header. curl features **EXPERIMENTAL** support for the Alt-Svc: HTTP header.
## Experimental
Experimental support in curl means:
1. 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".
2. You must enable the feature when invoking configure as otherwise curl will
not be built with the feature present.
3. We strongly advice against using this feature in production.
4. **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.
5. Experimental features are clearly marked so in documentation. Beware.
## Enable Alt-Svc in build ## Enable Alt-Svc in build
`./configure --enable-alt-svc` `./configure --enable-alt-svc`
@ -25,39 +10,6 @@ Experimental support in curl means:
[RFC 7838](https://tools.ietf.org/html/rfc7838) [RFC 7838](https://tools.ietf.org/html/rfc7838)
## 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
# Alt-Svc cache file format # Alt-Svc cache file format
This a text based file with one line per entry and each line consists of nine This a text based file with one line per entry and each line consists of nine
@ -75,6 +27,13 @@ space separated fields.
4. The ALPN id for the destination host 4. The ALPN id for the destination host
5. The host name for the destination host 5. The host name for the destination host
6. The host number for the destination host 6. The host number for the destination host
7. Within double quotes, the expiration date of this entry 7. The expiration date and time of this entry withing double quotes. The date format is "YYYYMMDD HH:MM:SS" and the time zone is GMT.
8. Boolean (1 or 0) if "persist" was set for this entry 8. Boolean (1 or 0) if "persist" was set for this entry
9. Integer priority value (not currently used) 9. Integer priority value (not currently used)
# TODO
- 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