Re: httpbis-p6-cache-06 and no-store response directive

"Yngve N. Pettersen (Developer Opera Software ASA)" <yngve@opera.com> Fri, 26 June 2009 19:47 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@core3.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0C32A3A6B62 for <ietfarch-httpbisa-archive-bis2Juki@core3.amsl.com>; Fri, 26 Jun 2009 12:47:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.798
X-Spam-Level:
X-Spam-Status: No, score=-7.798 tagged_above=-999 required=5 tests=[AWL=2.801, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tb2OV1dhhmoO for <ietfarch-httpbisa-archive-bis2Juki@core3.amsl.com>; Fri, 26 Jun 2009 12:47:10 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by core3.amsl.com (Postfix) with ESMTP id 828283A6AAE for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 26 Jun 2009 12:47:10 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.63) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1MKHNd-0000Q9-82 for ietf-http-wg-dist@listhub.w3.org; Fri, 26 Jun 2009 19:46:37 +0000
Received: from maggie.w3.org ([193.51.208.68]) by frink.w3.org with esmtp (Exim 4.63) (envelope-from <yngve@opera.com>) id 1MKHNU-0000PL-Tl for ietf-http-wg@listhub.w3.org; Fri, 26 Jun 2009 19:46:29 +0000
Received: from sam.opera.com ([213.236.208.81] helo=smtp.opera.com) by maggie.w3.org with esmtp (Exim 4.63) (envelope-from <yngve@opera.com>) id 1MKHNL-0006QK-S4 for ietf-http-wg@w3.org; Fri, 26 Jun 2009 19:46:28 +0000
Received: from nimisha.invalid.invalid (pat-tdc.opera.com [213.236.208.22]) (authenticated bits=0) by smtp.opera.com (8.13.4/8.13.4/Debian-3sarge3) with ESMTP id n5QJjiYa023219 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 26 Jun 2009 19:45:46 GMT
Date: Fri, 26 Jun 2009 21:45:32 +0200
To: Mark Nottingham <mnot@mnot.net>
From: "Yngve N. Pettersen (Developer Opera Software ASA)" <yngve@opera.com>
Organization: Opera Software AS
Cc: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: text/plain; format="flowed"; delsp="yes"; charset="iso-8859-15"
MIME-Version: 1.0
References: <op.uu6lg9vrqrq7tp@nimisha.oslo.opera.com> <20090624210348.GZ14121@shareable.org> <op.uv1wkxvyqrq7tp@nimisha.invalid.invalid> <661C2876-E069-4F25-8DBD-F39AF5E2A67E@mnot.net> <op.uv2ro9khqrq7tp@nimisha.invalid.invalid> <27857D9C-5FEF-4C70-9CDC-DBE795477396@mnot.net>
Message-ID: <op.uv5c56psqrq7tp@nimisha.invalid.invalid>
In-Reply-To: <27857D9C-5FEF-4C70-9CDC-DBE795477396@mnot.net>
User-Agent: Opera Mail/9.26 (Win32)
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by smtp.opera.com id n5QJjiYa023219
Received-SPF: pass
X-SPF-Guess: pass
X-W3C-Hub-Spam-Status: No, score=-6.6
X-W3C-Hub-Spam-Report: BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1MKHNL-0006QK-S4 e2796ef5954084187a66c8f67064502b
X-Original-To: ietf-http-wg@w3.org
Subject: Re: httpbis-p6-cache-06 and no-store response directive
Archived-At: <http://www.w3.org/mid/op.uv5c56psqrq7tp@nimisha.invalid.invalid>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/6902
X-Loop: ietf-http-wg@w3.org
Sender: ietf-http-wg-request@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-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>
Resent-Message-Id: <E1MKHNd-0000Q9-82@frink.w3.org>
Resent-Date: Fri, 26 Jun 2009 19:46:37 +0000

On Fri, 26 Jun 2009 08:41:43 +0200, Mark Nottingham <mnot@mnot.net> wrote:

> On 25/06/2009, at 8:06 PM, Yngve N. Pettersen (Developer Opera Software  
> ASA) wrote:
>
>>> Yngve, why does must-revalidate affect user experience so much? All  
>>> that it means is that you can't serve the response once it becomes  
>>> stale. Does Opera ignore server-provided expiry as a matter of course?
>>
>> Opera treats the directive as a no-cache for history-navigation, and  
>> that means that when you navigate back and forth in history all  
>> resources in the document with that flag will be revalidated, before  
>> they are displayed again. That causes a significant delay while  
>> navigating.
>
> RFC2616 specifically states that the cache and history are separate  
> (section 13.13).

Please tell that to everybody (particularly banks) who *requires* (and  
AFAIK even block clients that does not adhere to it) that the client  
rechecks/reloads content on history navigation. Particularly after a  
logout.

Case in point, I just noticed a bugreport from somebody saying that  
no-store should mean that content is revalidated/reloaded during history  
navigation. He wanted a login page when navigating back in history after  
logging out of a site. We have also received many reports, including from  
major customers, saying that no-cache should have the same effect.

The fundamental issue is that HTTP (as you are also touching on) does not  
specify any directives for history navigation. That leaves both web site  
developers, and browser vendors (and probably other vendors) in a lurch  
about how to facilitate things like secure logout which makes sure history  
navigation is not possible, while still ensuring good display performance,  
and the result is that we use the keywords that are available and that  
seem (or can be extended, maybe even stretched) to indicate the desired  
functionality, like we did with must-revalidate (before we used  
must-revalidate we tried to use the combination "private, no-cache" as a  
kick out of cache mechanism, but that caused too many problems).

I think it would be an idea if the new HTTP RFC give specific examples for  
how the directives should be interpreted in various situations, such as  
when going to a new page, when navigating ing history, full document  
reload, etc. Yes, that may look like something that is rather targeted at  
a specific application, but most uses of HTTP will be close to one of  
these. Such a description should have enough details that it will be  
useful to designers and implementors, even if it just says that "During  
history navigation the client MUST NOT evaluate cache directives, and MUST  
NOT attempt to reload/revalidate content from the server".

>> It *may* be that we should also check expiration first (and that is  
>> being considered, but may require significant changes), but the  
>> purposes for which we added it, online banking, requires checking on  
>> every view in any case. And as mentioned, the "primary" use of the  
>> directive in many frameworks, such as PHP, combines must-revalidate  
>> with no-cache and no-store.
>
>
> If you have users that need to restrict use of browser history (a well-

Actually, it would be more proper to say that it is web sites that our  
users visit that want those restrictions, and who sometimes use what I  
consider extreme measures to ensure that those policies are implemented.

> worn topic), please come up with extension protocol directives, rather

Please see my draft on cache-context (I am planning to refresh it soon):

    http://files.myopera.com/yngve/blog/draft-pettersen-cache-context-03.txt

Background:

   http://my.opera.com/yngve/blog/2007/02/27/introducing-cache-contexts-or-why-the


Alternatively, new headers and/or directives defining actions in history  
navigation should be defined. Any suggestions?


-- 
Sincerely,
Yngve N. Pettersen
 
********************************************************************
Senior Developer                     Email: yngve@opera.com
Opera Software ASA                   http://www.opera.com/
Phone:  +47 24 16 42 60              Fax:    +47 24 16 40 01
********************************************************************