M ISSUES/cache-responses.md => ISSUES/cache-responses.md +19 -0
@@ 3,3 3,22 @@ HTTP responses should be cached locally according to their cache-control headers
Especially once Rhapsode starts supporting hyperlinks.
This could be developed as an independant project and integrated in!
+
+## Caching headers
+* `CacheControl`, legacy `Pragma: no-cache`
+* `Expires`, may also be set via `CacheControl` or `Last-Modified`
+* `Etag` - echo back in `If-None-Match`
+* `Last-Modified` - echo back in `If-Modified-Since`
+* `Vary` - indicates which headers to compare for equality before using a cache.
+
+Use cached data for 304 responses.
+
+## Implementation
+I'd store an index file, with cached bodies stored seperately.
+
+There'd be four parts to implementing the cache:
+1. Annotating the request.
+2. Loading cached data for 304 responses.
+3. Storing cache responses.
+
+GNOME's implementation: https://github.com/GNOME/libsoup/blob/mainline/libsoup/soup-cache.c
D ISSUES/cache-responses.md~ => ISSUES/cache-responses.md~ +0 -0