Re: strip query terms OnOff

From: Henrik Nordstrom <henrik@dont-contact.us>
Date: Thu, 16 Mar 2006 14:32:57 +0100

tor 2006-03-16 klockan 15:14 +0200 skrev srnoam@t2.technion.ac.il:

> Do you mean no_cache in the request/reply http headers?

No, in squid.conf...

> "last modified" and sometimes "expire" also in cache_control I set new type
> "Dynamic" that I got squid to recognize (as CC_DYNAMIC) & treat as cachable

Why adding a new CC flag? Can't you use the max-age or s-max-age already
defined for this purpose? Or perhaps public?

From the protocol point of view, just adding a Expires or CC
max-age/s-max-age is sufficient to indicate the object may be cached.
The only thing special about query URLS in the standard is that they
SHOULD NOT be cached unless there is explicit freshness information
available.

RFC 2616 13.9 Side Effects of GET and HEAD

   Unless the origin server explicitly prohibits the caching of their
   responses, the application of GET and HEAD methods to any resources
   SHOULD NOT have side effects that would lead to erroneous behavior if
   these responses are taken from a cache. They MAY still have side
   effects, but a cache is not required to consider such side effects in
   its caching decisions. Caches are always expected to observe an
   origin server's explicit restrictions on caching.

   We note one exception to this rule: since some applications have
   traditionally used GETs and HEADs with query URLs (those containing a
   "?" in the rel_path part) to perform operations with significant side
   effects, caches MUST NOT treat responses to such URIs as fresh unless
   the server provides an explicit expiration time. This specifically
   means that responses from HTTP/1.0 servers for such URIs SHOULD NOT
   be taken from a cache. See section 9.1.1 for related information.

This (the last paragraph) is the reason why the no_cache lines exists in
the recommended configuration by default as we do not have anything in
the code implementing this exception, but in reality the lines is not
needed to comply with the standard as long as min age is kept at 0 in
refresh_pattern.

What this means is that if you remove the no_cache rules from your
squid.conf then Squid will not have any exceptions for query URLs than
they will be processed just like any other URL, just looking at the
headers returned.

> I used your log file with "log_mime_header on" so I see the full headers & I
> don't see anywere no_cache or anything like that.
>
> Is it possible my server (APACHE) send a no_cache without it being revealed in
> the log file?

No. The logs will show what your server sent.

Regards
Henrik

Received on Thu Mar 16 2006 - 06:33:02 MST

This archive was generated by hypermail pre-2.1.9 : Sat Apr 01 2006 - 12:00:06 MST