hpack static table question?

The hpack draft 7 says in 3.2.1 : "The referenced static entry is inserted
at the beginning of the header table".

I can't understand why this copy of a static entry to the dynamic table is
needed?   Doesn't this mean that the static entry will now be known by two
indexes?     Why is this copy needed?  Also If a badly written encoder kept
sending the static index reference, then it would be possible to fill up
the header table with duplicates of the static header?

I'm also struggling to work out why the indexing is done like:

          <----------  Index Address Space ---------->
          <-- Header  Table -->  <-- Static  Table -->
          +---+-----------+---+  +---+-----------+---+
          | 1 |    ...    | k |  |k+1|    ...    | n |
          +---+-----------+---+  +---+-----------+---+
          ^                   |
          |                   V
   Insertion Point       Drop Point


I would have thought it better to have the tables as:

          <----------  Index Address Space ---------->
          <-- Static  Table -->  <-- Header  Table -->
          +---+-----------+---+  +---+-----------+---+
          | 1 |    ...    | k |  |k+1|    ...    | n |
          +---+-----------+---+  +---+-----------+---+
                                 ^                   |
                                 |                   V
                            Insertion Point       Drop Point


This looks like a very deliberate decision made for good reason... but the
reason alludes me at the moment.

cheers









-- 
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 Monday, 2 June 2014 14:45:57 UTC