Choosing a header compression algorithm

Mark Nottingham <mnot@mnot.net> Thu, 21 March 2013 07:13 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2F35721F8D46 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 21 Mar 2013 00:13:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.781
X-Spam-Level:
X-Spam-Status: No, score=-8.781 tagged_above=-999 required=5 tests=[AWL=1.818, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EmqzfNQi2W5y for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 21 Mar 2013 00:13:40 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id DD9C521F8D3C for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 21 Mar 2013 00:13:39 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UIZfY-0008Rg-5r for ietf-http-wg-dist@listhub.w3.org; Thu, 21 Mar 2013 07:12:12 +0000
Resent-Date: Thu, 21 Mar 2013 07:12:12 +0000
Resent-Message-Id: <E1UIZfY-0008Rg-5r@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <mnot@mnot.net>) id 1UIZfI-0008P9-Cb for ietf-http-wg@listhub.w3.org; Thu, 21 Mar 2013 07:11:56 +0000
Received: from mxout-08.mxes.net ([216.86.168.183]) by lisa.w3.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from <mnot@mnot.net>) id 1UIZfE-00016e-BO for ietf-http-wg@w3.org; Thu, 21 Mar 2013 07:11:56 +0000
Received: from [192.168.1.80] (unknown [118.209.42.8]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id 6D5B8509B7 for <ietf-http-wg@w3.org>; Thu, 21 Mar 2013 03:11:30 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Message-Id: <254AABEE-22B9-418E-81B0-2729902C4413@mnot.net>
Date: Thu, 21 Mar 2013 18:11:26 +1100
To: "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\))
X-Mailer: Apple Mail (2.1499)
Received-SPF: pass client-ip=216.86.168.183; envelope-from=mnot@mnot.net; helo=mxout-08.mxes.net
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-3.361, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1UIZfE-00016e-BO 6243fc483506fba9781e91615a151f93
X-Original-To: ietf-http-wg@w3.org
Subject: Choosing a header compression algorithm
Archived-At: <http://www.w3.org/mid/254AABEE-22B9-418E-81B0-2729902C4413@mnot.net>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17086
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Previously, we've talked about starting with just a delta-encoding approach for our first implementation draft. In Orlando, we focused primarily on two proposals:

* Delta2
  Draft: http://tools.ietf.org/html/draft-rpeon-httpbis-header-compression-03
  Python Implementation: https://github.com/http2/compression-test/tree/master/compressor/delta2

* HeaderDiff
  Draft: http://tools.ietf.org/html/draft-ruellan-headerdiff-00
  Python Implementation: https://github.com/http2/compression-test/tree/master/compressor/headerdiff

As I understand it, Herve et al want to work on making HeaderDiff more resistant to CRIME, and hopefully we'll see the results of that in the very near future. 

In the meantime, I'd like everyone to become familiar with both drafts and the characteristics of their implementations, so that we can have an informed discussion of them.

I'd like to see a few things happen while we do this:

1) We need to do apples-to-apples comparison of these compressors to see how they behave under a range of constraints (especially, memory).

2) I'd like us to verify that they are respecting those constraints, and that they're implemented in an equivalent way (this is likely to be manual).

3) It would be very good to have a test suite that verifies that they correctly reconstitute the semantically significant parts of the headers; in particular, large/unusual values, ordering where appropriate, etc. Our current header corpus undoubtedly has holes in this regard.

If you make any progress along these lines (dare I ask for volunteers?), pleas share with the list.

Looking at our issues list, this is one of the major items preventing us from getting to a first implementation draft, so I'd like to chose a way forward soon -- especially since we're choosing a starting point, and the approach we take can evolve or, if necessary, be replaced.

Regards,

--
Mark Nottingham   http://www.mnot.net/