Skip to content

Commit

Permalink
[connect-tcp] Move capsule negotiation into the Upgrade Token
Browse files Browse the repository at this point in the history
Closes #2922
  • Loading branch information
bemasc committed Oct 21, 2024
1 parent 909a747 commit 3a0d87f
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions draft-ietf-httpbis-connect-tcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,13 +145,13 @@ Authentication to a templated TCP proxy normally uses ordinary HTTP authenticati

Clients SHOULD assume that all proxy resources generated by a single template share a protection space (i.e., a realm) ({{?RFC9110, Section 11.5}}). For many authentication schemes, this will allow the client to avoid waiting for a "401 (Unauthorized)" response before each new connection through the proxy.

### Use of the Capsule Protocol {#capsule-protocol}
## Use of the Capsule Protocol {#capsule-protocol}

In this specification, support for the Capsule Protocol {{?RFC9297}} is OPTIONAL for clients. Clients MAY request use of the Capsule Protocol by including a "Capsule-Protocol: ?1" header field in the request.
When using the "connect-tcp" Upgrade Token, templated TCP proxies do not use the Capsule Protocol {{!RFC9297}}. Clients MAY request use of the Capsule Protocol by offering the Upgrade Token "connect-tcp-capsule" instead. When offering or accepting the "connect-tcp-capsule" Upgrade Token, clients and servers SHOULD including a "Capsule-Protocol: ?1" header to facilitate processing by intermediaries.

Server support for the Capsule Protocol is REQUIRED. Servers MUST confirm use of the Capsule Protocol by echoing the "Capsule-Protocol: ?1" header in their response.
Clients of this specification MAY implement "connect-tcp", "connect-tcp-capsule", or both. Accordingly, templated TCP proxy servers for arbitrary clients MUST implement both Upgrade Tokens.

When using the Capsule Protocol, TCP payload data is sent in the payload of a new Capsule Type named DATA ({{data-capsule}}). The ordered concatenation of DATA capsule payloads has the same semantics as what would have been sent on the data stream if the Capsule Protocol were not in use. It is applicable whenever use of the Capsule Protocol is optional.
When using "connect-tcp-capsule", TCP payload data is sent in the payload of a new Capsule Type named DATA ({{data-capsule}}). The ordered concatenation of DATA capsule payloads represents the main payload data stream in any protocol where this is well-defined. Intermediaries MAY split or merge DATA capsules. Endpoints MAY indicate a TCP connection error by sending an incomplete DATA capsule, as an alternative to using TCP, TLS, or HTTP stream errors.

# Additional Connection Setup Behaviors

Expand Down

0 comments on commit 3a0d87f

Please sign in to comment.