Zwiki "Conditional HTTP GET" handling
Today a new development version of Zwiki code went online on zwiki.org (and related sites). This version has the ability to handle "If-modified-since" based "conditional HTTP GET" requests. The result? A bunch of much, much snappier Zwiki sites.
Based on my previous work on my COREBlog, I had hacked 304 handling (as "conditional HTTP GET" is often refered too, after the 304 status response the server may send back) into the Zwiki code. There are even setup instructions online. Links with more explanation about "conditional HTTP GET" at the end of that page. It's really easy to do in Zope, standard "Image" objects even do this out of the box.
The RFC says that the server "SHOULD" implement "conditional HTTP GET" using ETags together with If-Modified-Since. But I believe for Zwiki it doesn't make sense to implement that, since calculating a checksum on the page would require the page to be rendered for each request. That's exactly what we try to avoid to steer clear of the limited RAM problem on zwiki.org. The "Last-Modified" time is cheap to get and works fine most of the time.
Simon also made some changes to the ZEO and ZODB cache setup on the zwiki.org site. All together, the result is that the sites on zwiki.org feel much faster. This is in part to the browser taking pages from cache, and also in part to the overall load on the server being reduced.