-
Notifications
You must be signed in to change notification settings - Fork 43
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
Mid-stream trailers #313
Comments
Some preliminary considerations. Potential use cases for mid-stream trailers
Combining
Relationship with payload body
|
Potential use cases
Semantics
Multi-part
|
Copying over the questions from @vasilvv over in httpwg/http-extensions#986, as they are good ones:
|
|
HTTP/2's flow control only cares about DATA frames. But all frames are subject to TCP's flow control. In HTTP/3, all frames are sent on streams which is subject to QUIC's flow control. Responding to the original question, I don't know what a "new form of flow control" would look like and I don't see how one would improve things. |
What's the minimal change that would need to happen to semantics to enable this in a future version of HTTP (or an extension to an existing one)? |
I think you would need to make "trailer part" less special, and simply say that a version of HTTP can define a way to carry additional field sections during or after the body. H1-H3 currently define a way to carry only one such block, but an extension could provide more. |
As discussed in #220 and quicwg/base-drafts#3265, mid-stream trailers (i.e., those that arrive before the end of the payload body) are interesting.
A few things to discuss:
What are some potential use cases?
We recently stopped automatically combining trailers into headers, as that created a lot of issues. What about these -- are they yet again distinct from trailers as well as headers? Or can they be "downgraded" into trailers automatically? In other words, when transitioning from a hop that supports these from one that doesn't, are they just dropped onto the floor?
Related - is the expectation that implementations will create separate APIs for these, or would it be that trailers are just available / writable early?
What relationship does one of these have to the payload body? E.g., could I write one that "knows" exactly where in the body it occurs, so that it could sign a chunk of the body relative to it? Or could a handling implementation change its ordering in relation to body bytes?
The text was updated successfully, but these errors were encountered: