On Fri, 2003-09-12 at 03:18, Nik wrote:
Cheers Tim, here is an extract from the logfile that
is the section where I
did the actions you asked. I also have attached the full file.
[snip]
Here's a quick overview of how it's supposed to work:
* Browser requests to view the page. Server sees this is a first
request, renders the page, and sends the current timestamp with it along
with instructions that the browser *must* double-check with the server
every time it views that page.
* Browser requests edit page.
* Browser posts the submission. Server updates the page in the database
and tells the browser to request the page for viewing again.
* Browser requests to view the page; this time it sends along the
timestamp it had previously received in an If-Modified-Since header. The
server compares this timestamp with the current timestamp of the page,
and since the page is newer it will render and send the page anew.
Your log is consistently missing that last request, so the server never
even has a chance to send out the updated page. For some reason the
browser isn't asking for it.
Can you confirm that the timestamps in the log are correct? (It's
_supposed_ to consistently use GMT, but if your server is set on local
time and something slips through, some things could be an hour off.) I
don't see any obvious inconsistencies, though, and the expiration time
is hardcoded to January 2001 so it shouldn't matter...
Which version of the software are you using? Did you get it from CVS
(when?) or a tarball (which?) Try getting the stable branch from cvs:
"cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/wikipedia -r
stable co phase" or some such incomprehensible command.
I've sometimes had trouble with headers being overridden or not quite
coming out right. If you've got a packet sniffer you can use to check
what's actually on the wire between the server and the client, that
might be a help; it's possible the Expires and/or Cache-Control headers
aren't being set properly. You might try Ethereal (
www.ethereal.com)
which has a handy-dandy session reconstruction view, good for looking at
your HTTP steams; also try the current Mozilla Firebird browser and
install the 'Live HTTP headers' extension:
http://texturizer.net/firebird/extensions.html#Live%20HTTP%20Headers
(though of course Firebird might differ in its behavior; a packet
sniffer can check up on any browser.)
As a last-ditch, of course, you can disable client-side caching by
dropping "$wgCachePages = false;" into your LocalSettings. This _should_
force browsers to re-request pages always instead of caching. Well,
hopefully. :)
-- brion vibber (brion @
pobox.com)