Hi Guy, A lot of tutorial on the Internet teach you how to config Squid as a reverse proxy, such as I followed this article: http://wiki.squid-cache.org/SquidFaq/ReverseProxy, stuffs seems to be working for me, but I think I might need some tweaks but I found it difficult to find those information for backend servers, rather than the squid.conf. I know Squid is completely depends on HTTP header request/response from client/servers in order make it to work, so currently my simplified setup is: ============================ Clients <--> Squid <--> Apache (Last Modified header Enabled, Etag Disabled, using mod_expire and PHP) ============================ And my www root has the following structure: www/js www/images www/css [mod_expire set to access plus 10 days] www/images2 [SHOULD NOT be cached, nothing set and Last Modified header is sent out automatically by apache] www/index.php [cache-control: private, expire set to the past, i.e. no cache all the time for this page] www/static.php?id=xxx [query string not removed already set in squid.conf, and expire set to 1 years from access] p.s. in squid.conf, I have not set any refresh plattern currently. Okay, my problem is: 1. Is it true Squid will only use the Last Modified and Cache Control header for caching, other headers are not important in my setup? 2. I found that Squid will not consult the backend for updating the Last Modified value and sometimes send out 304 directly. So is that if my file has changed in my backend, I need to PURGE the Squid? 3. Are they anything you might think I have missed in the configuration above? [I am using FF 2.0, using tamper data to see the header, http caching not disabled] Any recommendations? Thank very much. Howard