RE: Issue with draft-ietf-httpbis-h2-websockets-07 (in RFC Editor queue)

But existing deployments *of RFC6455* use the lower-case token as well.  If you think we need a separate doc, a very short document saying that the lower-case is also used for the same protocol could be pushed through, I suppose.  But splitting the token for use in h2 versus existing use seems at least as silly, to me.

-----Original Message-----
From: Mark Nottingham <mnot@mnot.net> 
Sent: Tuesday, August 28, 2018 4:47 PM
To: Mike Bishop <mbishop@evequefou.be>
Cc: Alexey Melnikov <alexey.melnikov@isode.com>; Patrick McManus <mcmanus@ducksong.com>; Julian F. Reschke <julian.reschke@gmx.de>; HTTP Working Group <ietf-http-wg@w3.org>
Subject: Re: Issue with draft-ietf-httpbis-h2-websockets-07 (in RFC Editor queue)

On 29 Aug 2018, at 6:38 am, Mike Bishop <mbishop@evequefou.be> wrote:
> 
> I think it's probably the most interoperable to duplicate the existing entries to the new token. 

That means that it would just say "The Web Socket Protocol" and reference RFC6455. 

I don't think that's helpful; someone looking at the registry would rightly wonder why there are two nearly-identical entries, without any visible means of finding out.

If we're really going to go this route, I'd suggest:

"The Web Sockets Protocol over HTTP/2" with a reference to this specification, along with explanatory text in this spec noting that it's a different value, and why.

Personally, I really wonder if existing implementations have seen enough deployment to preclude just changing the value. 




> 
> -----Original Message-----
> From: Mark Nottingham <mnot@mnot.net> 
> Sent: Monday, August 27, 2018 4:55 PM
> To: Alexey Melnikov <alexey.melnikov@isode.com>
> Cc: Patrick McManus <mcmanus@ducksong.com>; Julian F. Reschke <julian.reschke@gmx.de>; HTTP Working Group <ietf-http-wg@w3.org>
> Subject: Re: Issue with draft-ietf-httpbis-h2-websockets-07 (in RFC Editor queue)
> 
> Saying that it's an "alias" implies that the values are interchangeable, which seems like an interop issue given the current specs.
> 
> IANA and the RFC editor are asking for exact text for the registry values; what should we write?
> 
> Cheers,
> 
> 
> 
>> On 15 Aug 2018, at 7:01 pm, Alexey Melnikov <alexey.melnikov@isode.com> wrote:
>> 
>> 
>> On 9 Aug 2018, at 22:31, Patrick McManus <mcmanus@ducksong.com> wrote:
>> 
>>> 6455 also uses lower case "websocket" when sending (and it mandates case insensitive parsing when receiving) even though the registry apparently has "Websocket" defined.
>>> 
>>> I'd prefer to just register websocket as an alias. in my experience that's the normal usage.
>> 
>> Agreed.
>> 
>>> On Thu, Aug 9, 2018 at 1:16 AM, Julian Reschke <julian.reschke@gmx.de> wrote:
>>> <https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-07#section-4>:
>>> 
>>>   o  A new pseudo-header field :protocol MAY be included on request
>>>      HEADERS indicating the desired protocol to be spoken on the tunnel
>>>      created by CONNECT.  The pseudo-header field is single valued and
>>>      contains a value from the HTTP Upgrade Token Registry located at
>>>      https://www.iana.org/assignments/http-upgrade-tokens/http-upgrade-
>>>      tokens.xhtml
>>> 
>>> And in <https://www.iana.org/assignments/http-upgrade-tokens/http-upgrade-tokens.xhtml>:
>>> 
>>> WebSocket       The Web Socket Protocol                 [RFC6455]
>>> 
>>> But, later on in <https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-07#section-5> and subsequent examples:
>>> 
>>>   The :protocol pseudo-header field MUST be included in the CONNECT
>>>   request and it MUST have a value of "websocket" to initiate a
>>>   WebSocket connection on an HTTP/2 stream.  Other HTTP request and
>>>   response header fields, such as those for manipulating cookies, may
>>>   be included in the HEADERS with the CONNECT method as usual.  This
>>>   request replaces the GET-based request in [RFC6455] and is used to
>>>   process the WebSockets opening handshake.
>>> 
>>> Note that the registered upgrade token is "WebSocket", but the spec requires the use of "websocket".
>>> 
>>> See also <https://github.com/httpwg/http-core/issues/8>.
>>> 
>>> Recommendation, in order of preference:
>>> 
>>> 1) Fix the spec to use "WebSocket" consistently.
>>> 
>>> 2) Register "websocket" as alias.
>>> 
>>> It would probably be good to also clarify that value matching for ":protocol" is consistent with "Upgrade" in HTTP/1.1, meaning case-sensitive.
>>> 
>>> Best regards, Julian
>>> 
>>> 
> 
> --
> Mark Nottingham   https://www.mnot.net/
> 
> 
> 
> 

--
Mark Nottingham   https://www.mnot.net/

Received on Wednesday, 29 August 2018 18:28:17 UTC