Subject: caching problems

From: "Tim Coates" <[email-masked]>
Date: Thu, 26 Oct 2000 11:50:45 +1000

Dont know if I am doign this the right way?!?

I am wondering what happens when HTTP 1.1 rules are specified in an HTTP 1.0
protocol - particulariy in regard to Cache-Control and proxies.

Here is the environment.... IIS server, MSIE 5.0 browser and Squid Proxy.

I have a web page that should not be cached by a proxy/browser etc.
Appropriate Cache-Control headers are sent also. In the GET/POST and
responses, the HTTP version is specified as 1.0. (Yet HTTP 1.1 Cache-Control
rules are also used.)

I have two versions of the same web software. At the browser I am able to
retrieve a web page from cache (one time only!) whereas with the latest
version, the page does not appear to be cached as the web page is retrieved
from the server. (This is proven using a packet sniffer.) In both versions
of software, packets sent by the server contain no-store, no-cache,
must-revalidate, max-age=1 cache control directives. The only difference
between the two version of the software is that in the latest version, the
headers are sent separately to the web page. In the earlier version, part of
the document is sent with the headers.

I am aware of the reliability of caches with 1.0 protocols, but if the only
difference (after using a packet sniffer) is that the headers are sent
separately, then I am at a loss to determine why in one case a page is be
retrieved from cache (previous version) whereas (in the latest version) the
user is redirected to a separate page.

---

From: "Joris Dobbelsteen" <[email-masked]>
Date: Thu, 26 Oct 2000 13:59:26 +0200

> -----Original Message-----
> From: Tim Coates [mailto:[email-masked]]
> Sent: Thursday, 26 October 2000 3:51
> To: [email-masked]
> Subject: caching problems
> 
> 

You are using too many cache-control directives. no-cache is sufficent..
No-store is also enough, causing it not to be stores anywhere.

no-store I would only recommend for sensative data, no-cache for non-sensative data, because it can save some network bandwidth.

using also the must-revalidate and max-age may confuse the cache, as it is *probably* non-compliant.

> user is redirected to a separate page.

Maybe that you should also include

Pragma: no-cache

just in case. Using HTTP/1.1 is better....

I expect a HTTP/1.1 cache to interpet the cache-control header included in a HTTP/1.0 response. MSIE does this, I think, but including "pragma: no-cache" is much more reliable...

- Joris