Rack::CacheHeaders code
A few months ago I
wrote
about a possible method for centrally configuring HTTP cache headers in
Rack
based web applications which I called
Rack::CacheHeaders
.
This is useful if your application's architecture involves tools like
Squid
or
Varnish,
or if you are generally interested in harvesting the numerous advantages of HTTP caching for your web application.
The code has evolved a bit since and proven useful in a number of production systems. I created a
gist
of
Rack::CacheHeaders
in case someone else finds it handy. The tool is not exhaustive in terms of policies as found in the HTTP
specs,
it's a collection of the ones we needed in the projects it's been used so far. Consider adding ones you need to the gist to make the code more complete and widely useful.
Rack::CacheHeaders
allows configuring HTTP cache policy response headers based on request URI patterns. For example, to set the
Cache-Control: max-age
header for a
/guitars/:id
resource to one hour:
Rack::CacheHeaders.configure do |cache| cache.max_age(/^\/guitars\/d+$/, 3600) end