Re: Call for Consensus: Remove "reference set" from HPACK (to address #552)

In message <CAH_y2NHvFhN75KXmFLxKkgwjSB+vG=54JtyvqmtN3yyZOzm38Q@mail.gmail.com>, Greg Wilkins wri
tes:

> |-----------------------------------+---+----+----+-----|
> |h2-12-noRefSet-noCopy-static1      |64%|47% |42% |41%  |
> |-----------------------------------+---+----+----+-----|
> |h2-12-noRefSet-noCopy-static1-date5|54%|39% |35% |34%  |
> +-------------------------------------------------------+

>But I would be very interested to see a concrete proposal for
>h2-12-noRefSet-noCopy-static1-date5

17% compression over the baseline is more than I expected.

My proposal is:

Static table:
          +-------+-----------------------------+--------------+
          | Index | Header Name                 | Header Value |
          +-------+-----------------------------+--------------+
          | 1     | :authority                  |              |
          | 2     | :method                     | GET          |
	  [...]
          | 33    | date                        | time_t       |
	  [...]
          | 36    | expires                     | time_t       |
	  [...]
          | 40    | if-modified-since           | time_t       |
	  [...]
          | 43    | if-unmodified-since         | time_t       |
          | 44    | last-modified               | time_t       |
	  [...]

Where the Header Value is "time_t", the encoding is:

     0   1   2   3   4   5   6   7
   +---+---+---+---+---+---+---+---+
   | 1 |        Index (7+)         |
   +---+---------------------------+------//------------+
   | 32 bit unsigned network byte order time value      |
   +-------------------------------+------//------------+

The time value is the number of seconds since 1970-01-01 00:00 UTC
without accounting for leap seconds.  (ie:  The UNIX/POSIX time_t
definition)

If the value cannot be encoded in a 32 bit unsigned
integer it SHALL be sent as a string.

Notice that I'm proposing a unsigned 32 bit, to be Y2038
compliant.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

Received on Wednesday, 16 July 2014 15:03:19 UTC