Re: Submitted new I-D: Cache Digests for HTTP/2

Amos Jeffries <squid3@treenet.co.nz> Tue, 12 January 2016 23:22 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9FDC51A904F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 12 Jan 2016 15:22:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.903
X-Spam-Level:
X-Spam-Status: No, score=-6.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VGTvkG5B3MFY for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 12 Jan 2016 15:22:51 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 680C81A904E for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 12 Jan 2016 15:22:50 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1aJ8Ci-0004zb-EL for ietf-http-wg-dist@listhub.w3.org; Tue, 12 Jan 2016 23:18:20 +0000
Resent-Date: Tue, 12 Jan 2016 23:18:20 +0000
Resent-Message-Id: <E1aJ8Ci-0004zb-EL@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <squid3@treenet.co.nz>) id 1aJ8Cf-0004yu-Fy for ietf-http-wg@listhub.w3.org; Tue, 12 Jan 2016 23:18:17 +0000
Received: from [121.99.228.82] (helo=treenet.co.nz) by maggie.w3.org with esmtp (Exim 4.80) (envelope-from <squid3@treenet.co.nz>) id 1aJ8Ca-0001pb-8d for ietf-http-wg@w3.org; Tue, 12 Jan 2016 23:18:16 +0000
Received: from [192.168.20.251] (unknown [121.98.40.17]) by treenet.co.nz (Postfix) with ESMTP id C45B8E6F26 for <ietf-http-wg@w3.org>; Wed, 13 Jan 2016 12:17:34 +1300 (NZDT)
To: ietf-http-wg@w3.org
References: <CAAMqGzYUoCMxBxUEY9wfLOHZp7nrO4d1q5JZo=96pfEbVS1-ew@mail.gmail.com> <652C3E3A-3DA6-40BB-82FF-01A7D65FF65C@lukasa.co.uk> <CABCZv0piAoDnA1J+2pJ3HyF_iRwj9AaFGfonFjdKGfYr=cGZgQ@mail.gmail.com> <CAKRe7JG16u+MteBz4Rz7iCnHxfhLZ=QbWekrhgNhNkq+pKhVAg@mail.gmail.com> <CANatvzyT_ohm5hEcJ1o8B+AEa70607E-LUnPp5cD8sSO8X0HKA@mail.gmail.com>
From: Amos Jeffries <squid3@treenet.co.nz>
X-Enigmail-Draft-Status: N1110
Message-ID: <56958980.1030307@treenet.co.nz>
Date: Wed, 13 Jan 2016 12:17:20 +1300
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <CANatvzyT_ohm5hEcJ1o8B+AEa70607E-LUnPp5cD8sSO8X0HKA@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=121.99.228.82; envelope-from=squid3@treenet.co.nz; helo=treenet.co.nz
X-W3C-Hub-Spam-Status: No, score=-4.2
X-W3C-Hub-Spam-Report: AWL=-1.092, BAYES_00=-1.9, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1aJ8Ca-0001pb-8d 0d5ceacbd5ffa44d06849bb15081152b
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Submitted new I-D: Cache Digests for HTTP/2
Archived-At: <http://www.w3.org/mid/56958980.1030307@treenet.co.nz>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/30906
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>

On 12/01/2016 2:20 p.m., Kazuho Oku wrote:
> 2016-01-12 0:39 GMT+09:00 Ilya Grigorik:
>> Glad to see this proposal!
>>
>> FWIW, another +1 for enabling this functionality via an HTTP header.
>> Limiting it to h2 frames makes it effectively inaccessible to web developers
>> that want to experiment with own cache management logic (via ServiceWorker,
>> etc).
> 
> Glad to hear from you.
> 
> While it is possible to use an HTTP header to implement cache-digest
> (and that is what we are doing now in H2O + ServiceWorker/cookie), I
> believe it should ideally be implemented as an HTTP/2 header since:
> 
> * including the digest value (the value changes as client receives
> responses) in every HTTP request is a waste of bandwidth

Bandwidth may or may not be a problem relative to the digest design and
amount of compression applied by the protocol (eg. h2 dynamic table vs
HTTP/1.1 repetition).


> * cache state is an information that is bound to the connection, not
> to a request

You assume a browser endpoint cache.

Intermediary caches are constructed from content flowing over multiple
parallel connections. Potentially from multiple origins. Which makes it
very likely to have changed between any two given requests to contain
things that cannot be inferred by the server from those two requests.

This type of problem is also more likely to happen in the presence of
domain sharding. Where the temporal locality of the index request is
different from the 100's of content requests.

ALTSVC may also make similar things happen with browser caches.

Amos