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

On 08/29/2018 07:46 AM, Mark Nottingham wrote:
> 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.

AFAIK it's not released in normal chrome yet, just canary.

Firefox doesn't have it on by default at least and I didn't get any 
answer trying to find out its status in nightly or whatever here recently.

Libwebsockets has implemented it but no problem accepting old and new 
:protocol names for a while, I guess that's the same situation for 
anyone else that has deployed it on server side.

So changing it now shouldn't be disruptive AFAIK.

-Andy

> 
> 
> 
>>
>> -----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 07:26:17 UTC