W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2011

Re: #290 [was: SHOULD-level requirements in p6-caching]

From: Roy T. Fielding <fielding@gbiv.com>
Date: Wed, 4 May 2011 18:37:40 -0700
Cc: Poul-Henning Kamp <phk@phk.freebsd.dk>, HTTP Working Group <ietf-http-wg@w3.org>
Message-Id: <BF138430-9984-42F9-B50D-0EC17BE934AE@gbiv.com>
To: Mark Nottingham <mnot@mnot.net>
On May 4, 2011, at 6:21 PM, Mark Nottingham wrote:
> AFAICT the only reason that you'd way to say that the Cache-Control header's presence means that you can ignore Pragma is if you want to emit requests like this:
> GET /foo HTTP/1.1
> Host: example.com
> Cache-Control: max-age=45
> Pragma: no-cache
> and have them treated differently by caches that understand CC vs. those that don't.

Yes, that's exactly what we need to do if there are suspected
HTTP/1.0 intermediaries in the path.  max-age must override Pragma.

> As I've said a few times now, according to the spec, that's currently very clearly equivalent to:
> GET /foo HTTP/1.1
> Host: example.com
> Cache-Control: max-age=45, no-cache
> Which I *hope* we can agree should be interpreted conservatively.

No, that's not what the client wants.  The client wants an HTTP/1.1
compliant cache to obey max-age=45, not no-cache, but fears the
presence of non-compliant caches that only understand Pragma.
Hence, both headers are sent.  If the client wanted no-cache
semantics, it would have sent no-cache in *both* fields.

Pragma has the same relation to CC as Expires.  If that isn't defined
in 2616, then it is surely an error in 2616.

Received on Thursday, 5 May 2011 01:38:04 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:13:52 UTC