- From: Victor Vasiliev <vasilvv@google.com>
- Date: Tue, 21 Jul 2020 16:22:30 -0400
- To: David Benjamin <davidben@chromium.org>
- Cc: Lucas Pardue <lucaspardue.24.7@gmail.com>, "tls@ietf.org" <tls@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>
- Message-ID: <CAAZdMae-jZVfv98jC3ru51uk6H6TZuaQ+P=PJW-BZ9uEKVbQCA@mail.gmail.com>
How would this work with regular SETTINGS? HTTP/2 and HTTP/3 have disjoint setting number spaces, and it's unclear to me whether there's any significant overlap between those. On Tue, Jul 21, 2020 at 11:49 AM David Benjamin <davidben@chromium.org> wrote: > On Tue, Jul 21, 2020 at 8:22 AM Lucas Pardue <lucaspardue.24.7@gmail.com> > wrote: > >> >> On Mon, Jul 20, 2020 at 10:42 PM David Benjamin <davidben@chromium.org> >> wrote: >> >>> On Mon, Jul 20, 2020 at 5:00 PM Lucas Pardue < >>> lucaspardue..24.7@gmail.com <lucaspardue.24.7@gmail.com>> wrote: >>> >>>> >>>> That makes sense but I guess I don't see the point in defining a new >>>> thing that contains frames that are never sent on streams. That is, if >>>> these are connection settings, just send the payload. Unframed extended >>>> settings might get you there, if you can find a way to encapsulate >>>> conventional settings inside them, then all the better. >>>> >>> >>> Could you elaborate on this a bit? I'm probably just failing to parse, >>> but I'm not sure which alternative you're suggesting here. (Ah, the wonders >>> of email.) >>> >>> David >>> >> >> I was trying to accommodate HTTP/2 and HTTP/3 in one breath, which is why >> my intent was probably unclear. Basically, if ALPS relies on frames for >> per-protocol settings then it has to accommodate the differences in frame >> format between HTTP/2 and HTTP/3. In the examples from the ALPS and Client >> Reliability proposals, the H2 frame needs to populate the frame header and >> it pick stream 0, which doesn't exist until the connection is actually >> made, so seems a bit kludgy. In H3, frames don't have the stream ID so you >> avoid the problem above. >> >> So my thought was to basically do away with the notion of >> protocol-specific frames in ALPS, and instead define the a common payload >> format that perhaps looks something like bishop-extended-settings [1], a >> series of Type-Length-Value (but without any frame headers). This would >> allow you to encode the old and new settings in a single format, rather >> than needing to delineate things via frames. >> >> [1] - >> https://tools.ietf.org/html/draft-bishop-httpbis-extended-settings-01#section-3.1.1 >> > > Ah, gotcha. The thinking was the settings were ALPN-specific anyway, so we > may as well define them however is more idiomatic for the protocol. This > means we automatically can make existing H2 and H3 settings more reliable. > Settings values can also be updated over the course of the connection, so > using frames keeps continuity there. But, yeah, a separate key/value syntax > would work too. > > (A small correction, the current Client Hint Reliability proposal allows > ACCEPT_CH to be sent in application data too. Maybe the frontend realizes > the origin's ACCEPT_CH preferences have changed and wants to notify > existing connections. Though I don't consider this feature important. I > doubt most folks, if anyone, will bother with this. Mostly that's how a > SETTINGS or EXTENDED_SETTINGS value already would have worked, so I figured > the semantics ought to be compatible in case EXTENDED_SETTINGS is revived.) > > David >
Received on Tuesday, 21 July 2020 20:22:56 UTC