p6: Returning the freshest response

Mark Nottingham <mnot@mnot.net> Fri, 29 March 2013 03:12 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 912F521F90F0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 28 Mar 2013 20:12:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.299
X-Spam-Level:
X-Spam-Status: No, score=-8.299 tagged_above=-999 required=5 tests=[AWL=2.300, 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 u4+HmXchCVFe for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 28 Mar 2013 20:12:41 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 9CC1E21F90EC for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 28 Mar 2013 20:12:38 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ULPiL-000566-HB for ietf-http-wg-dist@listhub.w3.org; Fri, 29 Mar 2013 03:10:49 +0000
Resent-Date: Fri, 29 Mar 2013 03:10:49 +0000
Resent-Message-Id: <E1ULPiL-000566-HB@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 1ULPiA-000550-Et for ietf-http-wg@listhub.w3.org; Fri, 29 Mar 2013 03:10:38 +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 1ULPi9-0007JG-FP for ietf-http-wg@w3.org; Fri, 29 Mar 2013 03:10:38 +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 7F599509B8 for <ietf-http-wg@w3.org>; Thu, 28 Mar 2013 23:10:15 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <E56A5FA7-555D-4283-95A1-FD0030D4616A@mnot.net>
Date: Fri, 29 Mar 2013 14:10:11 +1100
To: "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
X-Mailer: Apple Mail (2.1503)
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.363, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1ULPi9-0007JG-FP ff21b65655f0974fe95643ac695201bf
X-Original-To: ietf-http-wg@w3.org
Subject: p6: Returning the freshest response
Archived-At: <http://www.w3.org/mid/E56A5FA7-555D-4283-95A1-FD0030D4616A@mnot.net>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17169
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>

p6 currently says;

> When more than one suitable response is stored, a cache must use the most recent response (as determined by the Date header field).

https://svn.tools.ietf.org/svn/wg/httpbis/draft-ietf-httpbis/latest/p6-cache.html#constructing.responses.from.caches

... which was sourced pretty directly from 2616:

>  A correct cache MUST respond to a request with the most up-to-date response held by the cache that is appropriate to the request

Interpreted strictly*, this means that if a cache has two fresh representations:

  Content-Type: image/jpeg
  Date: Thu, 14 Feb 2013 03:08:09 GMT

  Content-Type: image/png
  Date: Thu, 14 Feb 2013 03:08:08 GMT

and it gets a request with:

  Accept: image/jpeg;q=0.1, image/png;q=1.0

then it'll return the JPEG because it's fresher, even though the client clearly prefers the PNG.

However that's not the whole story. To get to those multiple responses, the cache goes through the process of winnowing down the potentially matching stored responses, using the process described in <https://svn.tools.ietf.org/svn/wg/httpbis/draft-ietf-httpbis/latest/p6-cache.html#caching.negotiated.responses>.

That section says:

> If multiple selected responses are available, the most recent response (as determined by the Date header field) is used; see Section 4.

which I put into p6 based upon the above.

So, I'm wondering if we should change that to something like:

"""
If multiple selected responses are available, the cache will need to choose one to use. If a selecting header has a known mechanism for doing so (e.g., qvalues on Accept and similar request headers), it MAY be used to select one; otherwise, the most recent response (as determined by the Date header field) is used, as per Section 4.
"""

Thoughts?


* "appropriately" doesn't give us enough leeway here on its own; see the context.

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