Search squid archive

Re: Force page refresh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 15 Feb 2011 11:18:38 -0800, Andy Nagai wrote:
Is there any way to force cache refresh of a specific cached page or
specific javascript or css file?

Usually yes. There is one case when its not: a remote visitor attempting to force-refresh a hardened reverse-proxy.

* The client can send no-cache, max-age=0 or must-revalidate in its request headers. Any one of which will force revalidation and update of the cached object. Although you need to be careful that the variant headers match between the new request and what is cached.

* The server can also start sending no-cache, max-age=0, no-store or private in the Cache-Control: headers or an Expires: in the past. The next validation will currently erase cached versions of the objects. This is technically an HTTP loophole so will not always be the case, but it works for squid-3.1 and older.

* If HTCP protocol is enabled an HTCP CLR message can be sent to the proxy. This will update all HTCP-enabled peers as well with one UDP packet. The next client request will pull a fresh copy into cache.

* If PURGE method is explicitly configured a PURGE request can be sent to the proxy. Again the variant headers MUST match between the request and the cached object. The next client request will pull a fresh copy into cache. (HTCP CLR is far better if you can)



Is there a way to clear out the cache completely from a web interface?


No. Clearing the cache is a last-resort action when things go completely bad. This is an admin task which is a bad idea to allow people to perform trivially.

When configured to permit PURGE requests Squid will accept them and remove the cached entry matching the given URL and any variant headers in the request (other variants may be left in cache but inaccessible). This can be repeated for every URL in the cache.


That said, requests like yours are often made by admin with bad configurations and/or old versions of Squid. If it is your own Squid check that squid is obeying the HTTP cache-control headers (not violating them with refresh_pattern to forcing things to stay cached beyond their valid lifetime). Also we have an old and ongoing effort to improve the caching, using a recent version is important for best HTTP compliance.

Amos



[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux