Re: One comment on draft-ietf-httpbis-header-compression-00

Hervé,

On 2013-07-04, at 12:35 PM, RUELLAN Herve <Herve.Ruellan@crf.canon.fr> wrote:
> Thank you for your suggestions.
> 
> I changed the figures in subsections 4.x as you suggested. This will make it easier to grasp quickly how each representation is encoded.

Thanks!

> I'm reluctant to add examples of sending headers in the compression spec as there are already present in the main HTTP/2.0 spec.

Fair enough.

> 
> Hervé.
> 
>> -----Original Message-----
>> From: Michael Sweet [mailto:msweet@apple.com]
>> Sent: jeudi 4 juillet 2013 16:36
>> To: HTTP Working Group
>> Subject: One comment on draft-ietf-httpbis-header-compression-00
>> 
>> All,
>> 
>> Just a couple comments on draft-ietf-httpbis-header-compression-00:
>> 
>> - Appendix B provides useful examples showing headers and values, but the
>> 4.x subsections don't actually show the name or the value in the little
>> encoding figures. As I read through I completely missed the one sentence at
>> the end of each that indicated that the value is added on the end, and that
>> doesn't indicate the number of bits, etc. used to encode it.  I suggest
>> updating each figure to include all of the data that appears, for example 4.4.3
>> would turn into two figures (or two subsections - I don't know which would
>> be clearer):
>> 
>>      0   1   2   3   4   5   6   7
>>    +---+---+---+---+---+---+---+---+
>>    | 0 | 0 |      Index (6+)       |
>>    +---+---+-----------------------+
>>    | 0 | Substitute Index (7+)     |
>>    +---+---------------------------+
>>    | 0 | Value Length (7+)         |
>>    +---+---------------------------+
>>    | Value String (Length octets)  |
>>    +-------------------------------+
>> 
>>      0   1   2   3   4   5   6   7
>>    +---+---+---+---+---+---+---+---+
>>    | 0 | 0 |           0           |
>>    +---+---+-----------------------+
>>    | 0 | Name Length (7+)          |
>>    +---+---------------------------+
>>    | Name String (Length octets)   |
>>    +---+---------------------------+
>>    | 0 | Substitute Index (7+)     |
>>    +---+---------------------------+
>>    | 0 | Value Length (7+)         |
>>    +---+---------------------------+
>>    | Value String (Length octets)  |
>>    +-------------------------------+
>> 
>> - It wasn't completely clear until I got to the examples on how a client would
>> send headers in a request or how a server would send headers in the
>> response. The overview is focused on the header table and
>> encoder/decoder but doesn't actually talk about the HTTP client or server - a
>> quick high-level example (a "pseudo-encoding"?) might be useful here to
>> give the context for the encoder and how it is used, and in fact a simple
>> example of a series of GET requests for a web page would illustrate the
>> redundancy of headers, e.g.:
>> 
>>    HTTP/1.1 Client                      HTTP/1.1 Server
>> 
>>    GET / HTTP/1.1
>>    Host: www.example.com
>>    User-Agent: my-user-agent
>>    Accept-Language: en, fr
>> 
>>                                         HTTP/1.1 200 OK
>>                                         Date: Thu, 4 Jul 2013 15:35:00 GMT
>>                                         Server: my-server
>>                                         Connection: Keep-Alive
>>                                         Keep-Alive: timeout=30
>>                                         Content-Type: text/html; charset=utf-8
>>                                         Content-Length: 1234
>>                                         Content-Language: en
>>                                         Last-Modified: Wed, 3 Jul 2013 12:34:56 GMT
>> 
>>                                         ... content ...
>> 
>>    GET /image.jpg HTTP/1.1
>>    Host: www.example.com
>>    User-Agent: my-user-agent
>>    Accept-Language: en, fr
>> 
>>                                         HTTP/1.1 200 OK
>>                                         Date: Thu, 4 Jul 2013 15:35:01 GMT
>>                                         Server: my-server
>>                                         Connection: Keep-Alive
>>                                         Keep-Alive: timeout=30
>>                                         Content-Type: image/jpeg
>>                                         Content-Length: 5678
>>                                         Content-Language: en
>>                                         Last-Modified: Tue, 2 Jul 2013 10:20:30 GMT
>> 
>>                                         ... content ...
>> 
>> vs:
>> 
>>    HTTP/2.0 Client                      HTTP/2.0 Server
>> 
>>    :method = get
>>    :scheme = http
>>    :host = www.example.com
>>    :path = /
>>    user-agent = my-user-agent
>>    accept-language = en, fr
>> 
>>                                         :status = 200 (or use previous value)
>>                                         date = Thu, 4 Jul 2013 15:35:00 GMT
>>                                         server = my-server
>>                                         content-type: text/html; charset=utf-8
>>                                         content-length: 1234
>>                                         content-language: en
>>                                         last-modified: Wed, 3 Jul 2013 12:34:56 GMT
>> 
>>                                         ... content ...
>> 
>>    :method (use previous value)
>>    :scheme (use previous value)
>>    :host (use previous value)
>>    :path = /image.jpg
>>    user-agent (use previous value)
>>    accept-language (use previous value)
>> 
>>                                         :status (use previous value)
>>                                         date = Thu, 4 Jul 2013 15:35:01 GMT
>>                                         server (use previous value)
>>                                         content-type = image/jpeg
>>                                         content-length = 5678
>>                                         content-language (use previous value)
>>                                         last-modified = Tue, 2 Jul 2013 10:20:30 GMT
>> 
>>                                         ... content ...
>> 
>> You could then go on to talk about how the client and server encode and
>> decode the respective headers, with the follow-on examples showing the
>> actual encoding.
>> 
>> _________________________________________________________
>> Michael Sweet, Senior Printing System Engineer, PWG Chair
>> 
> 

_________________________________________________________
Michael Sweet, Senior Printing System Engineer, PWG Chair

Received on Thursday, 4 July 2013 23:34:39 UTC