Re: Header Compression Implementation Feedback
James M Snell <jasnell@gmail.com> Tue, 09 July 2013 00:04 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 886B011E80E3 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 8 Jul 2013 17:04:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.526
X-Spam-Level:
X-Spam-Status: No, score=-10.526 tagged_above=-999 required=5 tests=[AWL=0.073, 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 tqh1XrS+N785 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 8 Jul 2013 17:04:38 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 3570D11E80DF for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 8 Jul 2013 17:04:37 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UwLNq-00045A-Fd for ietf-http-wg-dist@listhub.w3.org; Tue, 09 Jul 2013 00:02:18 +0000
Resent-Date: Tue, 09 Jul 2013 00:02:18 +0000
Resent-Message-Id: <E1UwLNq-00045A-Fd@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UwLNi-000440-3E for ietf-http-wg@listhub.w3.org; Tue, 09 Jul 2013 00:02:10 +0000
Received: from mail-ob0-f172.google.com ([209.85.214.172]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UwLNh-00016T-F9 for ietf-http-wg@w3.org; Tue, 09 Jul 2013 00:02:10 +0000
Received: by mail-ob0-f172.google.com with SMTP id wo10so6311677obc.3 for <ietf-http-wg@w3.org>; Mon, 08 Jul 2013 17:01:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=dVCKhGqwhfzElObezi2+QVyFGBp42fq7bW5JeWA8MLU=; b=od8AlmBA+6zenlzXOT6XcKNXyuRTAJiSz8Q/wtmDAOd9WoPxERINBvx3kT7wbmVn2M uzgryuuhU0LAgxLeD/GM/OccKmbbx/wOr5ORUtwkegEYnxHhuB6RxO7Jkg/OvgJc1cj+ GnQuVWTQwKkkKBSo0AzgHBqBq1GQdEQMKWMwop6FWp1Qr72MzfUaOesTWAnTLGdkSgwd syJGldswa1H+P49YdLLin+lI9H8N/pWxBNUDAvTaZIDq+5pyw8/mP3UkiY4h8TUJsBNv YAHHNoqAVhcwjxDNQOiAOQk3InY8b99nRmUYC0HFyxGMytAMY+dNDTU12whuLx73hbA4 0AiA==
X-Received: by 10.60.125.100 with SMTP id mp4mr22121574oeb.60.1373328103521; Mon, 08 Jul 2013 17:01:43 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.60.55.8 with HTTP; Mon, 8 Jul 2013 17:01:23 -0700 (PDT)
In-Reply-To: <CABP7RbcjzwY6YgQWxRSu9zLJ6v2kwyQHyyr7t7SYOqH5e1Opow@mail.gmail.com>
References: <CABP7RbcjzwY6YgQWxRSu9zLJ6v2kwyQHyyr7t7SYOqH5e1Opow@mail.gmail.com>
From: James M Snell <jasnell@gmail.com>
Date: Mon, 08 Jul 2013 17:01:23 -0700
Message-ID: <CABP7RbdND8yMknhrBmc7Qh9Qzyv=XrxcXFh4FAmhSRcEWMNBQw@mail.gmail.com>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: text/plain; charset="UTF-8"
Received-SPF: pass client-ip=209.85.214.172; envelope-from=jasnell@gmail.com; helo=mail-ob0-f172.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.697, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1UwLNh-00016T-F9 488a6ac655b10668e614b72728cd27d9
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Header Compression Implementation Feedback
Archived-At: <http://www.w3.org/mid/CABP7RbdND8yMknhrBmc7Qh9Qzyv=XrxcXFh4FAmhSRcEWMNBQw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18641
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>
Another minor item as I've been going through the implementation: 4. Right now, the Header Compression scheme assumes two separate pre-filled header tables... one for Request headers, the other for response headers. The challenge with this is that it does not account for the use of Request Headers within PUSH_PROMISE frames. This is minor right now, but it means that PUSH_PROMISE frames will not have optimum compression because the request headers will need to be added as Literal representations with Indexing. It would be better if we just had ONE prefilled table (it would make implementation generally easier as well) On Mon, Jul 8, 2013 at 1:33 PM, James M Snell <jasnell@gmail.com> wrote: > So I've gone through and updated my header compression implementation > based on the current spec. Some feedback (shouldn't be too surprising > to anyone who may have followed my previous inputs on this topic) > > 1. I'd be *MUCH* happier without the Differential Encoding and the > Reference Set requirement. These mechanisms are designed to further > cut down on the number of bits set across the wire but they do add > complexity to the implementation that I do not feel is strictly > necessary. It would be possible to greatly simplify implementation if > Differential Encoding and the Reference Set we dropped from the > mechanism altogether at the cost of only a handful of additional bytes > per serialized header block. > > 2. I'd be *MUCH* happier if Eviction in the Header Table did not cause > renumbering of the existing items and if there was a fixed range of > index positions. Roberto has argued that doing so gives much worse > compression overall when dealing with lots of smaller valued headers > but my testing against the current corpus of test headers has not > demonstrated any significant problems. I will be drafting up a > modified bohe proposal that describes what I'd like to see in detail. > > 3. Going with the fixed range of index positions would allow us to do > away with the distinction between Literal with Incremental and Literal > with Substitution indexing. Everything would essentially be Literal > with Incremental until the fixed range is consumed, then the index > would simply rollover to reuse the existing index positions. Yes, I > get that the current scheme gives encoders more flexibility to develop > alternative algorithms for management the header table but, so far, I > do not agree that the flexibility is worth the additional complexity. > > - James
- Header Compression Implementation Feedback James M Snell
- Re: Header Compression Implementation Feedback James M Snell
- Re: Header Compression Implementation Feedback Amos Jeffries
- Re: Header Compression Implementation Feedback Michael Sweet
- RE: Header Compression Implementation Feedback Mike Bishop
- Re: Header Compression Implementation Feedback Michael Sweet
- RE: Header Compression Implementation Feedback Mike Bishop
- Re: Header Compression Implementation Feedback Martin Thomson
- Re: Header Compression Implementation Feedback Michael Sweet
- Re: Header Compression Implementation Feedback James M Snell
- Re: Header Compression Implementation Feedback Michael Sweet
- Re: Header Compression Implementation Feedback Michael Sweet