From 45a3c9b08fcf1aa02b8ffcd7104f3f95e296b379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kornel=20Lesin=CC=81ski?= Date: Tue, 31 May 2016 19:43:53 +0100 Subject: [PATCH] Updated readme --- README.md | 43 +++++++++++++++++++++++++++++-------------- fresh.jpg | Bin 0 -> 40029 bytes 2 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 fresh.jpg diff --git a/README.md b/README.md index b4f9a45..17083a8 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,30 @@ -# HTTP cache semantics +# Can I cache this? -`CachePolicy` object that computes properties of a HTTP response, such as whether it's fresh or stale, and how long it can be cached for. Based on RFC 7234. +`CachePolicy` implements HTTP cache semantics. It can tell when responses can be reused from cache, taking into account [RFC 7234](http://httpwg.org/specs/rfc7234.html) rules for user agents and shared caches. It's aware of many tricky details such as the `Vary` header, proxy revalidation, authenticated responses. ## Usage +Cacheability of an HTTP response depends on how it was requested, so both `request` and `response` are required to create the policy. + ```js -const cache = new CachePolicy(request, response, options); +const policy = new CachePolicy(request, response, options); -// Age counts from the time response has been created -const secondsFresh = cache.maxAge(); -const secondsOld = cache.age(); +if (!policy.storable()) { + // throw the response away, it's not usable at all +} -// Current state -const outOfDate = cache.stale(); +if (policy.satisfiesWithoutRevalidation(newRequest)) { + // the previous `response` can be used to respond to the `newRequest` +} ``` -Cacheability of response depends on how it was requested, so both request and response are required. Both are objects with `headers` property that is an object with lowercased header names as keys, e.g. +It may be surprising, but it's not enough for an HTTP response to be [fresh](#yo-fresh) to satisfy a request. It may need to match request headers specified in `Vary`. Even a matching fresh response may still not be usable if the new request restricted cacheability, etc. + +The key method is `satisfiesWithoutRevalidation(newRequest)`, which checks whether the `newRequest` is compatible with the original request and whether all caching conditions are met. + +### Constructor options + +Request and response must have a `headers` property with all header names in lower case. `url`, `status` and `method` are optional (defaults are any URL, status `200`, and `GET` method). ```js const request = { @@ -45,19 +54,25 @@ If `options.shared` is true (default), then response is evaluated from perspecti ### `satisfiesWithoutRevalidation(request)` -If it returns `true`, then the given `request` matches the response this cache policy has been created with, and the existing response can be used without contacting the server. +If it returns `true`, then the given `request` matches the original response this cache policy has been created with, and the response can be reused without contacting the server. -If it returns `false`, then the response may not be matching at all (e.g. it's different URL or method), or may require to be refreshed first. +Note that you can't return the old response as-is. The old response must be cleaned up (remove hop-by-hop headers such as `TE` and `Connection`) and updated (add `Age` or rewrite `max-age`, etc.). + +If it returns `false`, then the response may not be matching at all (e.g. it's for a different URL or method), or may require to be refreshed first. ### `storable()` -Returns `true` if the response can be stored in a cache. If it's `false` then you MUST NOT store either request or the response. +Returns `true` if the response can be stored in a cache. If it's `false` then you MUST NOT store either the request or the response. ### `stale()` Returns `true` if the response is stale (i.e. not fresh). -It generally means the response can't be used any more without revalidation with the server. However, there are exceptions, e.g. client can explicitly allow stale responses. A fresh response still may not be used if other conditions—such as `Vary`—are not satisfied. +It generally means the response can't be used any more without revalidation with the server. However, there are exceptions, e.g. a client can explicitly allow stale responses. A fresh response still may not be used if other conditions—such as `Vary`—are not satisfied. + +# Yo, FRESH + +![satisfiesWithoutRevalidation](fresh.jpg) ## Implemented @@ -65,8 +80,8 @@ It generally means the response can't be used any more without revalidation with * `Cache-Control` response header * `Pragma` response header * `Age` response header +* `Vary` response header * Default cacheability of statuses and methods -* Basic support for `Vary` ## Unimplemented diff --git a/fresh.jpg b/fresh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e1165d56fccd615d40c34986adfff6a3cf16c086 GIT binary patch literal 40029 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

m1k2hrc?HrjIoQ8R)2|= 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 literal 0 HcmV?d00001