Received: by taz.hyperreal.com (8.6.12/8.6.5) id CAA03320; Tue, 23 Jan 1996 02:30:00 -0800 Received: from skiddaw.elsevier.co.uk by taz.hyperreal.com (8.6.12/8.6.5) with ESMTP id CAA03315; Tue, 23 Jan 1996 02:29:56 -0800 Received: from snowdon.elsevier.co.uk (snowdon.elsevier.co.uk [193.131.197.164]) by skiddaw.elsevier.co.uk (8.6.12/8.6.12) with ESMTP id KAA24691 for ; Tue, 23 Jan 1996 10:28:04 GMT Received: from cadair.elsevier.co.uk (actually host cadair) by snowdon with SMTP (PP); Tue, 23 Jan 1996 10:28:11 +0000 Received: (from dpr@localhost) by cadair.elsevier.co.uk (8.6.12/8.6.12) id KAA18920 for new-httpd@hyperreal.com; Tue, 23 Jan 1996 10:28:10 GMT From: Paul Richards Message-Id: <199601231028.KAA18920@cadair.elsevier.co.uk> Subject: Re: proxying To: new-httpd@hyperreal.com Date: Tue, 23 Jan 1996 10:28:10 +0000 (GMT) In-Reply-To: from "Alexei Kosut" at Jan 22, 96 03:45:49 pm X-Mailer: ELM [version 2.4 PL24] Content-Type: text Content-Length: 2007 Sender: owner-new-httpd@apache.org Precedence: bulk Reply-To: new-httpd@hyperreal.com In reply to Alexei Kosut who said > > On Mon, 22 Jan 1996, Paul Richards wrote: > > > I'd like to see something analagous to the way DNS caching works, where > > the web authors would have control of the timeout's on a particular page > > and the cache would have to honour that and reload from the original > > when the timeout expires. > > Well, what the CERN server, and my proxy module (which I based for the > most part on CERN's behavior), is to expire files (ones without Expire > headers) after one tenth their staleness, based on the Last-Modified date. > So, for example, if a file was modified twenty days ago when it was > gotten, it will expire in two days, if it was modified ten minutes ago, > it'll expire in one. Hmm, those are reasonable heuristics to use in the absense of a proper protocol. It doesn't change the fact that http is missing this functionality in a properly formulated manner. If an enforced timeout was available you could do things like, set a long timeout on static pages, then when you want to actually change them you can first, drop the timeout to something quite small, after doing this wait for a time equal to the previous long timeout. At this point you are guaranteed that all caching servers will have picked up the page at least once and will now be using the new timeout value. You can now make your change to the file and have it propagated quickly and then up the timeout to the old value again. This process guarantees that the cached pages are never out of sync with the master copy for more than a short period of time. It really concerns me that there's no way to prevent incorrect (i.e. stale) data from being served from caches. This is of course a DNS trick, I do like the DNS model :-) Anyway, it's not really an issue for Apache since it would require a change to the http spec. -- Paul Richards. Originative Solutions Ltd. Internet: paul@netcraft.co.uk, http://www.netcraft.co.uk Phone: 0370 462071 (Mobile), +44 1225 447500 (work)