[pmwiki-users] cache control
Petko Yotov
5ko at 5ko.fr
Tue Nov 24 21:44:51 CST 2009
On Wednesday 25 November 2009 01:45:11 Daniel Otis wrote:
> Hmm, I am trying to implement the guidelines layed out at
> http://code.google.com/speed/page-speed/ and it seems convinced that the
> pages need a cache directive. Perhaps pmwiki handles caching
> differently than it expects.
You may want to read a page from these same guidelines:
http://code.google.com/speed/page-speed/docs/caching.html :-)
And if you still haven't, look at the RFC 2616 link that I gave you in the
previous message, and which is also linked from the same guidelines you're
trying to implement.
And if you still haven't, check your server logs for " 304 " responses, like I
suggested. You'll be surprised that it actually works! :-)
With $EnableIMSCaching = 1; PmWiki allows all browsers to cache all pages that
are cacheable. Instead of ETag, PmWiki uses a Cookie header which is more
widely supported. It cannot set a max-age because you can modify any page at
any time: if it did, your visitors would view their old cached version even
if your wiki has a newer version.
What happens: the browser caches the page, and when you reload it, it issues a
conditional request. If the wiki was modified, the full page is sent, if not,
only a header "304 Not modified" is sent, and your browser shows the cached
page. This is the fastest-practical-speed strategy for a dynamic website.
And there is no such thing "Cache-Control: cache". Refer to the RFC which is
the standard for the browser/server transfer protocol.
> Petko Yotov wrote:
> > On Tuesday 24 November 2009 18:43:16 Daniel Otis wrote:
> >> $HTMLHeaderFmt['cache'] = "<meta http-equiv='Cache-Control'
> >> content='cache' />"; to my config.php
...
> > It is Cache-Control: no-cache (just tested it on your server) and it is
> > the correct thing to do, refer to
> > http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
> >
> > Cache-Control: no-cache is about required validation, not about caching
> > by the browser, but about caching by proxies -- the browser always asks
> > the server if the page has changed, and if not, PmWiki sends a "304 Not
> > modified" header and exits. It should work on your own site, check your
> > apache logs and you'll have a number of 304 responses.
> >
> > Note that a wiki page may include other pages, pagelists and conditional
> > markup. Finding the actual Last Modified timestamp of all included pages
> > is quite complex, so PmWiki just sends the timestamp of the latest edit
> > of the latest edited page in the wiki - it's simpler, even if some
> > browsers may download the same content twice.
More information about the pmwiki-users
mailing list