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

As I understand it, implementations are already using this value, so changing the token specified might cause further interoperability issues. 

As such, the pragmatic thing to do seems to be #2 below -- registering "websocket" as an alias (probably with a note explaining why).

Since the registry is FCFS, I don't think we need to get the registration request into *this* document -- but if anyone disagrees, please say so ASAP, as it's in AUTH48.

Cheers,


> On 9 Aug 2018, at 3:16 pm, 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/

Received on Wednesday, 15 August 2018 05:51:07 UTC