- From: Roberto Peon <grmocg@gmail.com>
- Date: Thu, 22 May 2014 17:24:21 -0700
- To: Matthew Kerwin <matthew@kerwin.net.au>
- Cc: Mike Bishop <Michael.Bishop@microsoft.com>, HTTP Working Group <ietf-http-wg@w3.org>
- Message-ID: <CAP+FsNeFRcBfDcQP+Oqh6WSnTcb9W-gjUirxxgjd3pKvW=--5A@mail.gmail.com>
Extensions cannot safely modify the semantics of defined frames. This is implied from: Such frames are, by definition, informational and can be safely ignored without affecting the shared state with the sender. Anything that does modify defined-frame semantics isn't guaranteed to interoperate, and is more than simply an extension. -=R On Thu, May 22, 2014 at 4:48 PM, Matthew Kerwin <matthew@kerwin.net.au>wrote: > I like this. Is an unwritten implication of the proposal that an extension > can redefine existing frame types? > > I'm thinking of DATA compression as an extension, adding settings > parameters/flags/frame headers/etc. The current compression mechanism is > hop-by-hop, and it would be negotiated as a hop-by-hop extension, so it > works there; but I'll have to think more about the implications for > introducing end-to-end compression. My initial reaction is that we'd have > to introduce an extension frame type that duplicates DATA, like > COMPRESSED_DATA. This could have far reaching consequences, especially for > things like caching or transforming proxies. > > Also: there's a lot of "it's safe it ignore these" things in there. I'd > feel much more comfortable if there were some more hard, loud failures. > > 3.3.4.1. Handling by Intermediaries > > Intermediaries MUST forward all end-to-end frames regardless of > whether they recognize the frame type. Endpoints (user agents and > origin servers) MUST discard any frame types which they do not > recognize. Such frames are, by definition, informational and can be > safely ignored without affecting the shared state with the sender. > > All hop-by-hop extension-defined frames MUST be dropped by > intermediaries which do not support the extension. However, each > extension SHOULD specify how an intermediary translates the frames > defined by the extension toward other peers which might or might not > support the same extension. When an intermediary advertises support > for an extension, it MUST abide by the extension-defined intermediary > behavior. > > 3.4: > > [...] Implementations MUST ignore unknown settings and > MUST NOT emit settings defined by an extension which has not been > announced in an EXTENSIONS (Section 3.3.2) frame. > > If extensions are negotiated, there should never be a case where you > receive an extension-defined frame type or setting that you don't > recognise, so it should be a hard error. At the least you'd be flagging a > broken implementation. > > > > On 23 May 2014 03:34, Mike Bishop <Michael.Bishop@microsoft.com> wrote: > >> When we decided in Zurich to foreclose the option to extend HTTP/2, we >> thought that we were close to done with the basic protocol. And it’s true >> -- the fundamentals of HTTP/2 haven’t changed all that much since >> then. But various cases keep coming up where certain parties need to add >> one more feature. While these aren’t core to the HTTP/2 protocol, they’re >> also not worth versioning the protocol for later, and so we’ve added them >> to the spec for experimentation as optional components. >> >> This draft proposes that many of these would be perfectly valid use-cases >> for extensions, and that we might make progress more quickly if we add a >> simple extension model. I believe that the time we take in getting the >> extension model right will be more than offset by the ability to unblock >> the protocol and still handle new situations as they arise, even though >> we’re late in the process. >> >> I want to emphasize that the goal of the extension model is simplicity in >> the core protocol, and I’d welcome feedback on how to simplify it further. >> Sent from Windows Mail >> >> *From:* internet-drafts@ietf.org >> *Sent:* Thursday, May 22, 2014 10:24 AM >> *To:* Mike Bishop <Michael.Bishop@microsoft.com>, Mike Bishop<Michael.Bishop@microsoft.com> >> >> >> A new version of I-D, draft-bishop-http2-extension-frames-01.txt >> has been successfully submitted by Mike Bishop and posted to the >> IETF repository. >> >> Name: draft-bishop-http2-extension-frames >> Revision: 01 >> Title: Extension Frames in HTTP/2 >> Document date: 2014-05-22 >> Group: Individual Submission >> Pages: 18 >> URL: >> http://www.ietf.org/internet-drafts/draft-bishop-http2-extension-frames-01.txt >> Status: >> https://datatracker.ietf.org/doc/draft-bishop-http2-extension-frames/ >> Htmlized: >> http://tools.ietf.org/html/draft-bishop-http2-extension-frames-01 >> Diff: >> http://www.ietf.org/rfcdiff?url2=draft-bishop-http2-extension-frames-01 >> >> Abstract: >> This document describes a proposed modification to the HTTP/2 >> specification to better support the creation of extensions without >> the need to version the core protocol or invoke additional protocol >> identifiers. >> >> >> >> >> >> Please note that it may take a couple of minutes from the time of >> submission >> until the htmlized version and diff are available at tools.ietf.org. >> >> The IETF Secretariat >> >> > > > -- > Matthew Kerwin > http://matthew.kerwin.net.au/ >
Received on Friday, 23 May 2014 00:24:49 UTC