- From: Erik Nygren <erik@nygren.org>
- Date: Wed, 26 Aug 2015 17:40:12 -0400
- To: Bence Béky <bnc@chromium.org>
- Cc: HTTP <ietf-http-wg@w3.org>
- Message-ID: <CAKC-DJj7j2+dyPd0cEzUShBz7LpeC5=tDLGYsTgzjTObjzJqyQ@mail.gmail.com>
Some more discussion here is here: https://github.com/httpwg/http-extensions/issues/16 The concern with empty string was summarized by Julian: > I'm having second thoughts abound the "empty list" solution. In the past > I've seen broken support for empty header field values (software components > not being able to distinguish between "empty" and "not present"). > and Patrick agreed with: my instincts agree with Julian - empty headers with semantics are asking > for trouble > On Wed, Aug 26, 2015 at 5:06 PM, Bence Béky <bnc@chromium.org> wrote: > Hi, > > I noticed that the "clear" keyword was introduced > <https://github.com/httpwg/http-extensions/commit/68970e3555ba77cd56418c036e601af520b17711> > to clear alternative service entries for a given origin, but I don't seem > to find any discussion about this on this mailing list. Also, I was under > the impression that when I brought it up at the last meeting, there was no > objection to advertising an empty string for this purpose. I'm just > curious what happened. > > I personally find it still better than the "origin itself" or "bogus entry > with ma=0" hacks, though not quite as clear and foolproof to implement as > an empty string. Alas, I would be interested to hear other people's > opinions, in case anyone has experience implementing it since it was last > discussed. > > Also, since "clear" clears entries including the ones in the same header, > why could there be multiple alt-values? Would instead of > > Alt-Svc = 1#alt-value > alt-value = clear / ( alternative *( OWS ";" OWS parameter ) ) > > the following: > > Alt-Svc = clear / 1#alt-value > alt-value = alternative *( OWS ";" OWS parameter ) > > not make more sense? > > Thanks, > > Bence > > On Wed, Apr 1, 2015 at 11:37 PM, Ryan Hamilton <rch@google.com> wrote: > >> On Wed, Apr 1, 2015 at 5:17 PM, Mark Nottingham <mnot@mnot.net> wrote: >> >>> >>> > On 2 Apr 2015, at 10:02 am, Ryan Hamilton <rch@google.com> wrote: >>> > >>> > On Wed, Apr 1, 2015 at 9:24 AM, Martin Thomson < >>> martin.thomson@gmail.com> wrote: >>> > On 1 April 2015 at 05:11, Bence Béky <bnc@chromium.org> wrote: >>> > > I think the simplest way to say "the alternative services for this >>> > > origin is the following list: {empty list}" is to say "{empty list}" >>> > > instead of "{one item identical to origin, which is understood to >>> have >>> > > the special meaning that it's an empty list}" or "{one item with >>> valid >>> > > but arbitrary port and a special, otherwise unused value for ma, >>> which >>> > > is understood to have the special meaning that it's an empty list}". >>> > >>> > That argument only makes sense if you don't consider the origin to be >>> > a validate alternative. That it's implicit and always present isn't >>> > of much consequence. >>> > >>> > That's surprising to me. As I read the spec, Alt-Svc is all about >>> specifying different ways to reach a server: >>> > >>> > ...document specifies "alternative services" for HTTP, which allow >>> > an origin's resources to be authoritatively available at a separate >>> > network location >>> > >>> > >>> > To me, that does not imply that the origin is present in the list of >>> alternatives. If the origin is implicitly in that list, should Alt-Svc-Used >>> be sent when using it? That doesn't seem reasonable to me, which makes me >>> think that the origin really isn't implicitly part of the Alt-Svc list. >>> > >>> > Am I thinking about this the wrong way? >>> >>> Well, literally speaking it’s not an alternative; it’s the authority >>> (the thing that alt-svc provides alternatives *to*). >>> >> >> Yes, exactly. But since Alt-Svc lists alternatives, not authorities, it >> doesn't make sense to think that the authority is implicitly in the >> alternatives list. >> >> >> So if we're thinking about how to clear any alt-svc mappings that a >> client might have stored, it seems perplexing to propose that be >> accomplished by saying: >> >> Alt-Svc: <scheme>:<origin> >> >> Further, consider the case of an https:// origin which uses ALPN to >> optionally negotiate HTTP/2 but supports HTTP/1 for legacy clients. Does it >> need to list both h2 and http1? >> >> Sure seems more explicit to say: >> >> Alt-Svc: >> >> It *is* in the list of “places I can get stuff for this origin from”, >>> however. >>> >> >> Agreed! >> >> Cheers, >> >> Ryan >> >> >> >
Received on Wednesday, 26 August 2015 21:40:41 UTC