Quick summary of how this would work: * If a cached response contains an `ETag` header, add an `If-None-Match` header to the new request * If a cached response contains a `Last-Modified` header, add an `If-Modified-Since` header to the new request * If a `304 Not Modified` response is received, return the cached response and update expiration and headers (if changed) * If a `200` response is received, update the cache and return the new response