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

Add subprotocol negotiation #144

Merged
merged 6 commits into from
Dec 12, 2023
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions draft-ietf-webtrans-http3.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,26 @@ The `webtransport` HTTP Upgrade Token uses the Capsule Protocol as defined in
HTTP-DATAGRAM}} is not required by WebTransport and can safely be ignored by WebTransport
endpoints.

## Subprotocol Negotiation

WebTransport over HTTP/3 offers a subprotocol negotiation mechanism, similar to
TLS Application-Layer Protocol Negotiation Extension (ALPN) {{?RFC7301}}; the
intent is to simplify porting pre-existing protocols that use QUIC and rely on
this functionality.

The user agent MAY include a `WebTransport-Subprotocols-Available` header field
in the CONNECT request, enumerating the possible subprotocols; if received, the
server MUST include a `WebTransport-Subprotocol` field with the subprotocol
chosen in the 2xx response, or respond with an error code instead.
vasilvv marked this conversation as resolved.
Show resolved Hide resolved

Both `WebTransport-Subprotocols-Available` and `WebTransport-Subprotocol` are
Structured Fields {{!RFC8941}}. `WebTransport-Subprotocols-Available` is a List
of Tokens, and `WebTransport-Subprotocol` is a Token. The token in the
`WebTransport-Subprotocol` response header field MUST be one of the tokens
listed in `WebTransport-Subprotocols-Available` of the request. The semantics
of individual token values is entirely up to the WebTransport resource in
vasilvv marked this conversation as resolved.
Show resolved Hide resolved
question.
vasilvv marked this conversation as resolved.
Show resolved Hide resolved

DavidSchinazi marked this conversation as resolved.
Show resolved Hide resolved
## Limiting the Number of Simultaneous Sessions

This document defines a SETTINGS_WEBTRANSPORT_MAX_SESSIONS parameter that allows
Expand Down
Loading