On Thu, 18 Dec 2003, Gabriel Wicke wrote:

> On the xhtml content i set the Cache-control header as
> must-revalidate,max-age=0,s-maxage=36000. 
> The browser will always check back for changes, squid will get a purge
> request if something changes.
> 
> This breaks as soon as some transparent proxy gets in the way that picks
> up the s-maxage header.

Does not need to be a transparent proxy, just any proxy supporting 
s-maxage will do this.

The above headers says

  * Shared caches (i.e. proxies) may cache the object for 36000 seconds
  * All other caches (i.e. browsers) must check with their source (i.e. 
the proxy in proxied environment) if the source knows about a newer copy.

> So i'd like to strip any s-maxage headers or set them to 0 when passing
> through squid. I took a look at header_access and header_replace:
> 
> header_access Cache-control deny all
> header_replace Cache-control Must-revalidate,max-age=0,s-maxage=0
> 
> This makes the browser check back for everything on every request
> (stylesheets, pics...), very slow. 
> 
> What i'd like to achieve is a conditional replace only if s-maxage was
> included in the original header. Is this possible with some acl matching
> magic?

If you know which URLs you need to do this on then just make 
a urlpath_regex pattern matching which URLs this need to be done on (or 
not done on) and then use this in header_access when determining if the 
header should be replaced.

Regards
Henrik

Reply via email to