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

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.

....Roy

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