- From: Poul-Henning Kamp <phk@phk.freebsd.dk>
- Date: Wed, 16 Jul 2014 15:02:54 +0000
- To: Greg Wilkins <gregw@intalio.com>
- cc: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>
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