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

On 08/10/2018 01:45 PM, Julian Reschke wrote:
> On 2018-08-10 07:23, Andy Green wrote:
>>
>>
>> On 08/10/2018 01:09 PM, Julian Reschke wrote:
>>> On 2018-08-10 05:48, Amos Jeffries wrote:
>>>> On 10/08/18 11:25, Mike Bishop wrote:
>>>>> Ick.  This looks like a 6455 erratum – the registration is “WebSocket”
>>>>> but all the (non-normative) examples are “websocket”.  
>>>>> Case-insensitive
>>>>> matching is explicitly permitted, and RFC2616/2817 don’t clearly say
>>>>> that Upgrade tokens are or aren’t case-sensitive that I can find.  
>>>>> (Nor
>>>>> do I see it in 7230…?)
>>>>>
>>>>
>>>> I was of the understanding that Upgrade labels are governed by the
>>>> relevant protocols equivalent of RFC 7230 section 2.6 rules. So for
>>>> example HTTP labels *are* case sensitive, but WebSockets is free to
>>>> define sensitivity for its own label.
>>>> ...
>>>
>>> Is it? What if the code that handles the Upgrade token is 
>>> protocol-agnostic? The problem here is that the IANA registry is 
>>> first-come-first-serve, and also doesn't have a "case-insensitive" flag.
>>>
>>> IMHO it would be better to just fix the protocol (ws over h2) - it's 
>>> not even published yet after all.
>>
>> The problem only exists between RFC6455 talking about case-insensitive 
>> receive and the registry having one case variation registered - not 
>> the one all the implementations I know of are using to send, 
>> "websockets". There're no actual problem in the field... they all send 
>> "websockets" but would accept case variation on what they receive.  
>> Also registering "websockets" will formalize the reality everyone is 
>> sending "websockets".
>>
>> The H2 thing doesn't use the same mechanism, and the CONNECT it does 
>> use already specifies a single literal
>>
>> ```
>> 5.
>>
>> The pseudo-header :protocol 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.
>> ```
>>
>> https://tools.ietf.org/id/draft-ietf-httpbis-h2-websockets-03.html
>>
>> I couldn't see anywhere that the :protocol names are "registered", but 
>> that's OK isn't it?
> 
> The spec says that the value for ":protocol" is an Upgrade token from 
> the IANA registry, hence this mail thread :-)

Looks like that was added after the v3 google sent me to

```

4
       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
```

https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-07

>> When you say, "fix the protocol (ws over h2)" what do you envisage 
>> getting "fixed" in that?
> 
> That would mean changing "websockets" to "WebSockets".

Or just register "websockets" in the "HTTP Upgrade token registry" and 
job done without changing anything else?

-Andy

>> ...
> 
> Best regards, Julian
> 
> 

Received on Friday, 10 August 2018 05:56:26 UTC