- From: Michael Sweet <msweet@apple.com>
- Date: Thu, 04 Jul 2013 19:34:09 -0400
- To: RUELLAN Herve <Herve.Ruellan@crf.canon.fr>
- Cc: HTTP Working Group <ietf-http-wg@w3.org>
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