Sha256: 31565dd545ba8c921fd6b4cd80a5ba9dd85fa9a6191cb20cb80127a063b266c6
Contents?: true
Size: 1.45 KB
Versions: 2
Compression:
Stored size: 1.45 KB
Contents
## 0.4 - liberal, conservative, sane caching configs - Sample apps: Rack, Rails, Sinatra, Merb, etc. - busters.rb and no-cache.rb doc and tests - Canonicalized URL for cache key: - sorts params by key, then value - urlencodes /[^ A-Za-z0-9_.-]/ host, path, and param key/value - Custom cache keys - Cache invalidation on PUT, POST, DELETE. - Invalidate at the request URI; or, anything that's "near" the request URI. - Invalidate at the URI of the Location or Content-Location response header. ## Backlog - Add missing Expires header if we have a max-age. - Purge/invalidate specific cache entries - Purge/invalidate everything - Maximum size of cached entity - Last-Modified factor: requests that have a Last-Modified header but no Expires header have a TTL assigned based on the last modified age of the response: TTL = (Age * Factor), or, 1h = (10h * 0.1) - Run under multiple-threads with an option to lock before making requests to the backend. The idea is to be able to serve requests from cache in separate threads. This should probably be implemented as a separate middleware component. - Consider implementing ESI (http://www.w3.org/TR/esi-lang). This should probably be implemented as a separate middleware component. - Sqlite3 (meta store) - stale-while-revalidate - Serve cached copies when down (see: stale-if-error) - e.g., database connection drops and the cache takes over what it can.
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
rtomayko-rack-cache-0.3.0 | TODO |
rack-cache-0.3.0 | TODO |