- From: Jake Archibald <notifications@github.com>
- Date: Thu, 21 Feb 2019 17:05:57 +0000 (UTC)
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/fetch/pull/853/review/206407219@github.com>
jakearchibald requested changes on this pull request.
Feels like this is heading in the right direction.
>
<p class=note>See also the
"<a href=https://tools.ietf.org/html/rfc7234#section-4.3.4>Sending a Validation Request</a>"
chapter of <cite>HTTP Caching</cite> [[!HTTP-CACHING]].
- <li><p>Otherwise, set <var>response</var> to <var>storedResponse</var> and set
+ <li><p>Otherwise, set <var>response</var> to <var>storedResponse</var> and set
This is the second "otherwise" to this if statement. Maybe the previous one is meant to be an otherwise-if, but it isn't clear without nesting.
> <ol>
- <li><p>If <var>storedResponse</var>'s <a for=response>header list</a>
- <a for="header list">contains</a> `<code>ETag</code>`, then <a for="header list">append</a>
- `<code>If-None-Match</code>` with its value to <var>httpRequest</var>'s
- <a for=request>header list</a>.
-
- <li><p>If <var>storedResponse</var>'s <a for=response>header list</a>
- <a for="header list">contains</a> `<code>Last-Modified</code>`, then
- <a for="header list">append</a> `<code>If-Modified-Since</code>` with its value to
- <var>httpRequest</var>'s <a for=request>header list</a>.
+ <li><p>Set <var>response</var> to <var>storedResponse</var>.
+ <li><p>Set <var>response</var>'s <a for=response>cache state</a> to "<code>local</code>".
+ <li><p>In parallel perform <a for=main>main fetch</a> using <var>request</var> with
+ <ul class=brief>
+ <li><p><i>stale content mode</i> set to "<code>disallow</code>" and
Does a cache mode of "reload" work better here?
It may also be worth adding a note that the response isn't use other than to populate the cache.
If the user closes the tab, should this request be canceled?
> @@ -1901,6 +1910,13 @@ is a <a>filtered response</a> whose
<li><p>Return <var>newResponse</var>.
</ol>
+<p>A <dfn export id=concept-stale-response>stale response</dfn> is a <a for=/>response</a> where
+the freshness lifetime calculation (excluding the stale-while-revalidate directive) has not
+exceeded the current age.
Isn't this the definition of a fresh response?
> @@ -1901,6 +1910,13 @@ is a <a>filtered response</a> whose
<li><p>Return <var>newResponse</var>.
</ol>
+<p>A <dfn export id=concept-stale-response>stale response</dfn> is a <a for=/>response</a> where
+the freshness lifetime calculation (excluding the stale-while-revalidate directive) has not
+exceeded the current age.
+
+<p>A <dfn export id=concept-stale-response>stale response inside revalidate window</dfn> is
+a <a>stale response</a> where the freshness lifetime calculation (including the stale-while-revalidate
I don't think this is quite right. To say an "A" is a "B", "A" must be a subset of "B", but in this case it seems the other way around.
> @@ -4163,6 +4179,21 @@ Range Requests</cite>. [[HTTP-RANGE]] However, this is not widely supported by b
`<code>If-Range</code>`, then set <var>httpRequest</var>'s
<a for=request>cache mode</a> to "<code>no-store</code>".
+ <li><p>If <var>httpRequest</var>'s <a for=request>stale content mode</a> is
+ `<code>default</code>` then:
+
+ <ol>
+ <li><p>If <var>httpRequest</var>'s <a for=request>cache mode</a> is "<code>default</code>",
+ <var>httpRequest</var>'s <a for=request>method</a> is `<code>GET</code>`, and
Is this applying the "GET" restriction to other kinds of state response fetching, like "only-if-cached"?
>
<p class=note>See also the
"<a href=https://tools.ietf.org/html/rfc7234#section-4.3.4>Sending a Validation Request</a>"
chapter of <cite>HTTP Caching</cite> [[!HTTP-CACHING]].
- <li><p>Otherwise, set <var>response</var> to <var>storedResponse</var> and set
+ <li><p>Otherwise, set <var>response</var> to <var>storedResponse</var> and set
It might be because of the messed-up if statement, but it kinda looks like a stale response could be used even if the stale content mode is "disallow".
> @@ -1526,6 +1531,10 @@ Unless stated otherwise, it is zero.
which is "<code>basic</code>", "<code>cors</code>", or "<code>opaque</code>".
Unless stated otherwise, it is "<code>basic</code>".
+<p>A <a for=/>request</a> has an associated <dfn export for=request id=stale-content-mode>stale content mode</dfn>,
+which is "<code>allow</code>", "<code>disallow</code>" or "<code>default</code>". Unless stated
+otherwise, it is "<code>default</code>".
I'm not 100% sure, but I'm not sure this is needed. Can't the current values of "cache mode" handle this?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/pull/853#pullrequestreview-206407219
Received on Thursday, 21 February 2019 17:06:38 UTC