Re: New Version Notification for draft-mcmanus-httpbis-h2-websockets-02.txt

Hi,

Thanks for all the responses.

On Mon, Nov 20, 2017 at 2:20 PM, Patrick McManus <mcmanus@ducksong.com> wrote:
>>
>> If so, does the client need to wait for the initial SETTINGS frame to see
>> if there is an ENABLE_CONNECT_PROTOCOL = 1 parameter in it, or can it send
>> out the Websocket request right away in order to save a roundtrip (it would
>> fail anyway if the server has no support)?  Would it make sense to
>> explicitly allow an HTTP/2 server to process a Websocket request that it
>> receives before the initial SETTINGS frame is ACKed?  The client would still
>> need to wait for the server handshake before it can use the Websocket.
>>
>
> the client needs to wait because the draft changes the definition of
> CONNECT.. you can't use the new definition against a server that hasn't
> opted into it. Note that there is no technical requirement on the server for
> a settings ack - the requirement is on when the client can send the request.
> This might be 0.5 rtt or not, depending on the style of handshake. It is the
> annoying part here driven by the simplicity of the design. I think that's
> the right choice.
>

Since there is no requirement for the server to wait for settings ACK
before accepting Websockets requests, there should be no harm in the
client sending such a request right after sending its initial SETTINGS
on a freshly opened h2 connection.  If the server supports Websockets,
the request will go through.  If the server does not, then it will
reset the frame because of the undefined pseudo-header.  The earlier
the client sends the request, the better latency we get.  The earlier
the client gets a failure, the better latency we get for the
retry-over-h1 case.  Am I missing something here?

Or if this behavior is not desirable, then instead just default to h1
every time there is no open h2 connection with Websockets support to
the server.  As Andy mentioned, most of the cases we expect a warm
connection when a script requests a Websocket anyway.  We can gather
some data about this and try to be clever later.

Bence

Received on Wednesday, 22 November 2017 12:59:11 UTC