Re: Push and Caching
Mark Nottingham <mnot@mnot.net> Wed, 20 August 2014 02:54 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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 210D11A0438 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 19 Aug 2014 19:54:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.57
X-Spam-Level:
X-Spam-Status: No, score=-7.57 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.668, 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 dj4Db4huMhTQ for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 19 Aug 2014 19:54:10 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 301071A0178 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 19 Aug 2014 19:54:10 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1XJvys-0006tJ-FP for ietf-http-wg-dist@listhub.w3.org; Wed, 20 Aug 2014 02:50:34 +0000
Resent-Date: Wed, 20 Aug 2014 02:50:34 +0000
Resent-Message-Id: <E1XJvys-0006tJ-FP@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 1XJvyT-0006rp-Hj for ietf-http-wg@listhub.w3.org; Wed, 20 Aug 2014 02:50:09 +0000
Received: from mxout-07.mxes.net ([216.86.168.182]) by lisa.w3.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from <mnot@mnot.net>) id 1XJvyS-00081h-Fp for ietf-http-wg@w3.org; Wed, 20 Aug 2014 02:50:09 +0000
Received: from [192.168.1.55] (unknown [118.209.123.236]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id 8981322E1F3; Tue, 19 Aug 2014 22:49:43 -0400 (EDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <CABkgnnWvKgyDcm-1jEKZUA2Qza9M46X+X_QybwuqRwvSUrTjNw@mail.gmail.com>
Date: Wed, 20 Aug 2014 12:49:39 +1000
Cc: Mike Bishop <Michael.Bishop@microsoft.com>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <B6B89855-237F-44DA-B29C-2A3BB5CE0EED@mnot.net>
References: <dc3d860ecb4b4d408a5ed0519a036e61@BL2PR03MB132.namprd03.prod.outlook.com> <CABkgnnWvKgyDcm-1jEKZUA2Qza9M46X+X_QybwuqRwvSUrTjNw@mail.gmail.com>
To: Martin Thomson <martin.thomson@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Received-SPF: pass client-ip=216.86.168.182; envelope-from=mnot@mnot.net; helo=mxout-07.mxes.net
X-W3C-Hub-Spam-Status: No, score=-3.8
X-W3C-Hub-Spam-Report: AWL=-3.064, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1XJvyS-00081h-Fp 53bda80a8c759ee62ddf934afe91f83b
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Push and Caching
Archived-At: <http://www.w3.org/mid/B6B89855-237F-44DA-B29C-2A3BB5CE0EED@mnot.net>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/26675
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>
So, in that change I was just trying to be clear about what "cacheable" meant; note that in the original text, it linked to *response* cacheability in RFC7234, not request. Mike, for your use case, CC: no-cache *is* cacheable; it just needs to be revalidated before reuse. See <http://httpwg.github.io/specs/rfc7234.html#response.cacheability> and <http://httpwg.github.io/specs/rfc7234.html#cache-response-directive> Things get a bit nasty here because we don't define the scope of validity for a newly-pushed response, but we could nail that down with a bit of work, I think. If we want to be able to push *truly* uncacheable responses (e.g., CC: no-store), we could say that a) cacheable pushed responses SHOULD be stored by caches, whereas uncacheable pushed responses MAY be consumed by the receiving application or discarded. This makes me a bit nervous, as HTTP/2 isn't chartered to create new HTTP semantics, and that's sailing awfully close to the wind... Regardless, we need to be a bit more careful with words there, since response cacheability is partially determined by whether the cache is shared, and the server generating the response can't know the nature of downstream caches. I'll try to come up with an improvement in a pull request. BTW, this all ties up really closely with what the application does *after* the HTTP cache in browsers; this is all only roughly specified at the moment, see: https://github.com/igrigorik/resource-hints/issues/5 https://www.w3.org/Bugs/Public/show_bug.cgi?id=26350 Cheers, On 20 Aug 2014, at 3:25 am, Martin Thomson <martin.thomson@gmail.com> wrote: > On 19 August 2014 08:21, Mike Bishop <Michael.Bishop@microsoft.com> wrote: >> I missed when that change happened. Can someone with better git-fu remind >> me? Was there list discussion? > > https://github.com/http2/http2-spec/commit/3cec55e8 > > The change title: untangle relationship between pushing, promising, and caching > > - A server can only push responses that are cacheable (see > <xref target="HTTP-p6" x:fmt="," > - x:rel="#response.cacheability"/>); promised requests MUST > be safe (see <xref > - target="HTTP-p2" x:fmt="," x:rel="#safe.methods"/>) and > MUST NOT include a request body. > + A server can only push requests that are safe (see <xref > target="HTTP-p2" x:fmt=","^M > + x:rel="#safe.methods"/>), cacheable (see <xref > target="HTTP-p6" x:fmt=","^M > + x:rel="#response.cacheability"/>) and do not include a > request body.^M > > This was part of what was intended to be an editorial fix, along with > a large bunch of other edits > (https://github.com/http2/http2-spec/commits/master?page=18) and I > missed the subtle, but substantive change in the midst of the rest. > > I think that the `Cache-Control: nocache` response is a useful > feature. I do remember being careful to permit uncacheable responses, > knowing that this would be an important use case. I want to be able > to use push to trivially replace long-polling and this would help with > that. > > Maybe Mark can defend his change. -- Mark Nottingham https://www.mnot.net/
- Push and Caching Mike Bishop
- Re: Push and Caching Martin Thomson
- Re: Push and Caching Greg Wilkins
- Re: Push and Caching Martin Thomson
- Re: Push and Caching Mark Nottingham
- RE: Push and Caching William Chow
- RE: Push and Caching Mike Bishop
- Re: Push and Caching Patrick McManus
- Re: Push and Caching Mark Nottingham
- Re: Push and Caching Martin Thomson
- RE: Push and Caching Mike Bishop
- Re: Push and Caching Martin Thomson
- RE: Push and Caching Mike Bishop
- Re: Push and Caching Mark Nottingham
- Re: Push and Caching Greg Wilkins
- Re: Push and Caching Mark Nottingham
- Re: Push and Caching Mark Nottingham
- Re: Push and Caching Martin Thomson
- Re: Push and Caching Mark Nottingham
- Re: Push and Caching Martin Thomson
- Re: Push and Caching Mark Nottingham
- Re: Push and Caching Greg Wilkins
- RE: Push and Caching William Chow
- Re: Push and Caching Mark Nottingham
- RE: Push and Caching William Chow
- Re: Push and Caching Matthew Kerwin
- Re: Push and Caching Mark Nottingham
- Re: Push and Caching Chris Drechsler
- Re: Push and Caching Roy T. Fielding
- Re: Push and Caching Roy T. Fielding
- Re: Push and Caching Martin Thomson
- Re: Push and Caching Roy T. Fielding
- Re: Push and Caching Michael Sweet
- RE: Push and Caching William Chow
- Re: Push and Caching Martin Thomson
- Re: Push and Caching Martin Thomson
- Re: Push and Caching Roy T. Fielding
- RE: Push and Caching William Chow
- Re: Push and Caching Greg Wilkins
- Re: Push and Caching Greg Wilkins
- Re: Push and Caching Martin Thomson
- Re: Push and Caching Greg Wilkins