RE: DRAFT: more details for HTTPtre

I agree that HPACK is largely decouplable from HTTP/2, or HTTP.  The core of the protocol is a general-purpose compression algorithm for streaming key-value dictionaries, rather than straight text.  The pieces that bind it to H2 are incidental, and perhaps we could have structured it differently.

Coalescing isn't a new semantic -- each HTTP mapping defines how parallelism and connection reuse should work in that mapping.  HTTP/2 simply happens to define it more expansively than HTTP/1.1.

-----Original Message-----
From: Lucas Pardue [mailto:Lucas.Pardue@bbc.co.uk] 
Sent: Tuesday, November 28, 2017 8:52 AM
To: ilariliusvaara@welho.com
Cc: Mark Nottingham <mnot@mnot.net>; HTTP Working Group <ietf-http-wg@w3.org>; Patrick McManus <mcmanus@ducksong.com>
Subject: RE: DRAFT: more details for HTTPtre

Hi Ilari,

Ilari Liusvaara wrote:

> Server push is a new semantic in HTTP. But header compression is 
> supposed to be internal matter of HTTP/2.
> 

I do agree that header compression is "opaque" to an HTTP application.

So slight slip of the tongue from me perhaps, my intention was to say that the concept of HTTP Header compression, in terms of something " ... that eliminates redundant header fields, limits vulnerability to known security attacks, and has a bounded memory requirement.", is maybe generally applicable to future versions of HTTP. 

RFC 7540 Section 4.3 describes both a generic definition of compression (header list serialisation into a header block) and specific implementation detail (use HPACK, carry header blocks in HEADERS or PUSH_PROMISE). While it could be possible to extract the generic definition I am not currently sure how useful that would be.

To risk stoking flames even further. It could be argued that HPACK has little that ties it to HTTP/2. It defines some SETTINGS to control dynamic table size, references HTTP/2 pseudo header fields, and has some implicit requirements of connection usage and delivery guarantees. 

> Another new concept in HTTP/2 is connection coalescing. And HTTP/2 
> also allows for variety of extensions containing new semantics.

HTTP connection coalescing is another good example, thanks for picking that out.

Regards
Lucas

Received on Tuesday, 28 November 2017 18:32:46 UTC