Re: Expect: + Upgrade: = ...

Hi,

On Fri, Sep 06, 2013 at 11:04:19PM +0000, Osama Mazahir wrote:
> Speaking as the HTTP server stack implementer, the best way, IMHO, is to mandate that:
> 1 - the server emit the 100 first followed by the 101.
> 2 - the client emit the entire request in HTTP/1.1 (which is a result of #1)
> 
> It is legal for the client to send the entity body without waiting for the
> 100.

This is a very good point, I didn't think about it.

> Consequently, if the server were to send the 101 first then the server
> does not know whether the next set of bytes it receives (i.e. entity body)
> from the client were sent before or after the client got the 101.  This means
> the server side parser cannot deterministically parse the request stream.  By
> sending the 100 first, we guarantee that the client will emit the entity-body
> in HTTP/1.1.  Then the server sends the 101 and subsequent HTTP/2.0 bytes.
> As soon as the server sends the 101, the server knows that the next inbound
> bytes will be HTTP/2.0 and as soon as the client receives the 101 it knows it
> can send HTTP/2.0 and that the next inbound bytes will be HTTP/2.0.

I'm perfectly fine with this.

Willy

Received on Saturday, 7 September 2013 05:21:11 UTC