Re: The "http-opportunistic" well-known URI | draft-ietf-httpbis-http2-encryption-06

Martin Thomson <martin.thomson@gmail.com>: (Thu Jun 30 04:18:57 2016)
> On 29 June 2016 at 02:09, Kari hurtta <hurtta-ietf@elmme-mailer.org> wrote:
> > 1) Pick first matching member
> > 2) Pick last matching member
> > 3) Treat "http-opportunistic" as invalid
> > 4) Merge some way all matching members
> 
> Or 5) pick any matching member.
> Or 6) leave it to chance.
> 
> I think that given the state of JSON parsers, we should take option 6.
> Not all parsers will make duplicate keys detectable.  And some
> generate fatal errors.
> 
> Thus: A client MAY use any matching origin object, but by preference
> they SHOULD pretend that conflicting values don't exist.
> 
> I think that's it's worth explaining why we choose this option too.
> How does https://github.com/httpwg/http-extensions/pull/205 look to
> you?

| The JSON format for the http-opportunistic resource makes it possible to 
| include multiple values for the same origin. Variations in case allow for duplicate 
| keys that a JSON parser will treat as different.  Duplicated keys might not be 
| detected by a client (see Section 4 of {{RFC7159}}). A client SHOULD NOT use 
| origin objects if multiple keys match, though it MAY  use any origin
| object with a matching key.

Looks good.

I see that requiring more means that client must implement JSON parser
itself.

https://tools.ietf.org/html/rfc7159#section-4

| Many implementations report the last name/value pair
| only.  Other implementations report an error or fail to parse the
| object, and some implementations report all of the name/value pairs,
| including duplicates.

So there may be similar problem also with "lifetime", "tls-ports" and
"tls-commit" members.

Perhaps:

" A client MAY treate http-opportunistic invalid as whole if it includes 
  duplicate member names on some object. A client SHOULD NOT use the origin 
  object, if it includes duplicate member names. "

This allows fatal errors when there is duplicate on some object (even when
it is not current origin). 

/ Kari Hurtta

Received on Thursday, 30 June 2016 20:26:36 UTC