The cache server software aims for a reasonable compromise between ensuring that a document is up-to-date, and providing a cached copy. The question is, how can you be sure that the information you are looking out is up-do-date, or has it has been sitting in the local cache for several days?
There isn't a single answer to this, but the following items may help:
cgi-binURL will definitely be up-to-date, as such URLs can't be cached.
Expires:header which is earlier than the current date, the object is stale, otherwise the object is fresh. If the object is stale, the server goes off to the originating server to see if the object has been updated there; if it has, the server retrieves the updated object.
The following diagram shows the freshness algorithm used by Squid (thanks to Kolics Berthold):