Re: Rechartering HTTPbis

On 25/01/2012 10:12 p.m., Poul-Henning Kamp wrote:
> In message<20120125064534.GE32580@1wt.eu>, Willy Tarreau writes:
>
>> That said, there are a number of other issues in HTTP/1.1 that we could get
>> rid of when switching to a new protocol :
>>   - get rid of the Host header and only use absolute URIs
> +1
>
>>   - get rid of content-length and only use transfer-coding (and get rid of
>>     3 pages in the spec which explain how to determine a message's length)
> Actually your remaining three ideas can be combined into one idea:
>
>     - Clearly split transport metadata from content metadata, for instance
>       by putting a blank line between them.
>
> That removes the need for a Connection header to say which transport
> metadata to strip.
>
> I would add a new header that tells how many seconds the connection
> can be idle before it is closed.  A value of zero has same semantics
> as "Connection: close" has today.
>
> That split also avoids the need to even parse the content metadata
> for purposes of transport.
>
>

I have just been thinking it would be good to go further than this.  If 
we mandate chunking, it can start immediately after the request-line. 
With the first chunk being the transport headers. Second chunk the 
hop-by-hop headers. Then a chunk for end-to-end and others. That will 
give parsers the size of those header blobs up front so they can process 
or skip faster than trolling through for what is needed.

By avoiding the assumption that the empty line is easily detectable we 
also avoid smuggling attacks a bit cleaner (not 100%, but easier) than 
present approaches can achieve.

AYJ

Received on Wednesday, 25 January 2012 14:21:44 UTC