- From: Roberto Peon <grmocg@gmail.com>
- Date: Mon, 14 Jul 2014 22:33:57 -0700
- To: Greg Wilkins <gregw@intalio.com>
- Cc: Kazu Yamamoto <kazu@iij.ad.jp>, HTTP Working Group <ietf-http-wg@w3.org>, Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>, Martin Thomson <martin.thomson@gmail.com>
- Message-ID: <CAP+FsNfKgBA8WCJZNT7nkDHz3BWSg==YBX5Rc5T3Rr4GALoWWQ@mail.gmail.com>
If there is no reference set, there would be no reason to copy (or pretend to copy) items from the static table to the dynamic header table. Then again one could choose to have opcodes for ephemeral actions vs state changing actions, or change how one emits the reference set by making it explicit, or make the static table entries negative or put them at the start of the space instead of the end, or have several reference sets (good for proxies), or require references to show up before literal opcodes, or have different opcodes for static table entries, or have opcodes which modify ranges of entries, or have arrays of opcodes of the same type, or use 7 bit encoding or fields or use sentinels instead of using length prefixing or have differing Huffman tables for different directions on different frames, or encoder lengths differently, or typed fields, or have different limits for header entry count vs size, etc. I've tried all of the above, incidentally. The current design was the winner as it best balanced speed and compression efficiency. On 15 July 2014 14:28, Martin Thomson <martin.thomson@gmail.com> wrote: > The reasons I cited are still relevant considering that most entries > don't have associated values. > Well of course literal fields with index'd names will be copied into the header table. That is an entirely different matter than copying an indexed static field. To be precise I am concerned with the text in 4.1 that says: An _indexed representation_ corresponding to an entry _not present_ in the reference set entails the following actions: o If referencing an element of the static table: * The header field corresponding to the referenced entry is emitted. * The referenced static entry is inserted at the beginning of the header table. * A reference to this new header table entry is added to the reference set, unless this new entry didn't fit in the header table. I believe that if we do not have a reference set, then this should just become: An _indexed representation_ entails the following actions: o If referencing an element of the static table: * The header field corresponding to the referenced entry is emitted. I just cannot understand why you wish to create an entry in the dynamic table whenever the static table index is used for something like :status:200 ? I only just accepted the reason that it limited the reference set size to 0 if the header table size was set to 0. Now there is no reference set, there is no reason for this. -- Greg Wilkins <gregw@intalio.com> http://eclipse.org/jetty HTTP, SPDY, Websocket server and client that scales http://www.webtide.com advice and support for jetty and cometd.
Received on Tuesday, 15 July 2014 05:34:25 UTC