You can further speed up static file serving by exploiting client-side caching. The idea is to send the client a version-specific URL for static files, and tell the client that it may cache that data forever. When the underlying file changes, your Webware app generates a new URL. This reduces traffic to the server, but more importantly, it can result in noticeably faster response at the client end. This requires co-operation from Apache version 2. Here's the details: Configure apache-2 so that urls like ``/@X/...`` are mapped to ``/...``, and the client is told it may cache the result for a long time:: RewriteRule ^/@[^/]+/(.+)$ /$1 [L,E=VERSIONED_FILE:1] Header add "Expires" "Thu, 10 Nov 2016 23:30:00 GMT" env=VERSIONED_FILE Header add "Cache-Control" "max-age=315360000" env=VERSIONED_FILE Modify your webware app to prefix version info to your static URLs. For example, for data that almost never changes, like images, return URLs like ``/@0/images/foo.gif``:: # Apache serves image data out of /images. # Put this in an app-wide config file: images_url = '/@0/images' ... self.write('' % images_url) If such an object really does change, change images_url to ``/@1/images`` and restart webkit. For files that occasionally do change, like CSS and javascript, set the version prefix to the underlying file's modification time. A function like this is useful:: # Let's assume the URL /static contains # static file data served by Apache 2. static_dir = '/var/www/myapp/static' # filesystem path to /static def static_url(thing): path = '%s/%s' % (static_dir, thing) modtime = os.path.getmtime(path) return '/@%x/static/%s' % (modtime, thing) # Use it like so: self.write('' % static_url('foo.js')) Thanks to `Cal Henderson`_ for the original idea. .. _Cal Henderson: http://www.thinkvitamin.com/features/webapps/serving-javascript-fast -- KenLalonde_ - 20 November 2006