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

[connect-tcp] Discuss use of the Capsule Protocol #2847

Merged
merged 8 commits into from
Aug 2, 2024
Merged
Changes from 5 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
16 changes: 13 additions & 3 deletions draft-ietf-httpbis-connect-tcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +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.

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

Unlike the datagram-oriented templated HTTP proxying specifications {{CONNECT-UDP}}{{CONNECT-IP}}, this specification does not make use of the Capsule Protocol {{?RFC9297}}. A future specification could define a procedure for performing TCP proxying using the Capsule Protocol, but no such procedure is defined here.
In this specification, use of the Capsule Protocol {{?RFC9297}} is OPTIONAL. Clients MAY request use of the Capsule Protocol by including a "Capsule-Protocol: ?1" header field in the request.

When implementing this specification, clients and servers MUST NOT send a "Capsule-Protocol: ?1" header field.
Server support for the Capsule Protocol is also OPTIONAL. If the request includes "Capsule-Protocol: ?1", and the server does not support the Capsule Protocol, the server MUST respond with a 4xx (Client Error) status and a "Capsule-Protocol: ?0" response header field. Upon receiving such a response, the client SHOULD disable use of the Capsule Protocol with this URI Template for the remainder of the session and retry the request.
bemasc marked this conversation as resolved.
Show resolved Hide resolved

When using the Capsule Protocol, TCP payload data is sent in the payload of a new Capsule Type named DATA ({{data-capsule}}). This capsule's payload carries the same significance that ordinary stream data has when the Capsule Protocol is not in use. It is applicable whenever use of the Capsule Protocol is optional.
bemasc marked this conversation as resolved.
Show resolved Hide resolved

# Additional Connection Setup Behaviors

Expand Down Expand Up @@ -230,6 +232,14 @@ IF APPROVED, IANA is requested to add the following entry to the "MASQUE URI Suf
| Path Segment | Description | Reference |
| tcp | TCP Proxying | (This document) |

## New Capsule Type {#data-capsule}
bemasc marked this conversation as resolved.
Show resolved Hide resolved

IF APPROVED, IANA is requested to add the following entry to the "HTTP Capsule Types" registry:

| ----- | ------------ | --------- | ------------------------------------- | ----------------- | ------- |
| Value | Capsule Type | Status | Reference | Change Controller | Contact |
| (TBD) | DATA | permanent | (This document), {{capsule-protocol}} | IETF | HTTPBIS |
bemasc marked this conversation as resolved.
Show resolved Hide resolved

--- back

# Acknowledgments
Expand Down
Loading