Skip to content

Commit 0fe0e23

Browse files
authored
Meta: anchor HR-TIME and RESOURCE-TIMING terms
ReSpec-authored specifications are best anchored as otherwise outgoing links go all over the map. Also migrate away from tools.ietf.org as the documents there redirect.
1 parent ad40f03 commit 0fe0e23

File tree

1 file changed

+54
-41
lines changed

1 file changed

+54
-41
lines changed

fetch.bs

Lines changed: 54 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,28 @@ Translate IDs: typedefdef-bodyinit bodyinit,dictdef-requestinit requestinit,type
1111
</pre>
1212

1313
<pre class=anchors>
14-
url:https://tools.ietf.org/html/rfc7230#section-3.1.1;text:method;type:dfn;spec:http
15-
url:https://tools.ietf.org/html/rfc7230#section-3.2;text:field-name;type:dfn;spec:http
16-
url:https://tools.ietf.org/html/rfc7230#section-3.2;text:field-content;type:dfn;spec:http
17-
url:https://tools.ietf.org/html/rfc7230#section-3.2;text:field-value;type:dfn;spec:http
18-
url:https://tools.ietf.org/html/rfc7230#section-3.1.2;text:reason-phrase;type:dfn;spec:http
19-
url:https://tools.ietf.org/html/rfc7234#section-1.2.1;text:delta-seconds;type:dfn;spec:http-caching
20-
url:https://tools.ietf.org/html/rfc8941#section-2;text:structured field value;type:dfn;spec:rfc8941
21-
url:https://tools.ietf.org/html/rfc8941#section-4.1;text:serializing structured fields;type:dfn;spec:rfc8941
22-
url:https://tools.ietf.org/html/rfc8941#section-4.2;text:parsing structured fields;type:dfn;spec:rfc8941
14+
urlPrefix:https://datatracker.ietf.org/doc/html/rfc7230#;type:dfn;spec:http
15+
url:section-3.1.1;text:method
16+
url:section-3.2;text:field-name
17+
url:section-3.2;text:field-content
18+
url:section-3.2;text:field-value
19+
url:section-3.1.2;text:reason-phrase
20+
21+
url:https://datatracker.ietf.org/doc/html/rfc7234#section-1.2.1;text:delta-seconds;type:dfn;spec:http-caching
22+
23+
urlPrefix:https://datatracker.ietf.org/doc/html/rfc8941#;type:dfn;spec:rfc8941
24+
url:section-2;text:structured field value
25+
url:section-4.1;text:serializing structured fields
26+
url:section-4.2;text:parsing structured fields
27+
28+
url:https://w3c.github.io/resource-timing/#dfn-mark-resource-timing;text:mark resource timing;type:dfn;spec:resource-timing
29+
30+
urlPrefix:https://w3c.github.io/hr-time/#;spec:hr-time
31+
type:dfn
32+
url:dfn-coarsen-time;text:coarsen time
33+
url:dfn-coarsened-shared-current-time;text:coarsened shared current time
34+
url:dfn-unsafe-shared-current-time;text:unsafe shared current time
35+
type:typedef;url:dom-domhighrestimestamp;text:DOMHighResTimeStamp
2336
</pre>
2437

2538
<pre class=biblio>
@@ -74,7 +87,7 @@ url:https://tools.ietf.org/html/rfc8941#section-4.2;text:parsing structured fiel
7487
},
7588
"EXPECT-CT": {
7689
"authors": ["Emily Stark"],
77-
"href": "https://tools.ietf.org/html/draft-ietf-httpbis-expect-ct-02",
90+
"href": "https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-expect-ct",
7891
"publisher": "IETF",
7992
"title": "Expect-CT Extension for HTTP"
8093
},
@@ -83,19 +96,19 @@ url:https://tools.ietf.org/html/rfc8941#section-4.2;text:parsing structured fiel
8396
},
8497
"HTTP3": {
8598
"authors": ["M. Bishop, Ed."],
86-
"href": "https://tools.ietf.org/html/draft-ietf-quic-http",
99+
"href": "https://datatracker.ietf.org/doc/html/draft-ietf-quic-http",
87100
"publisher": "IETF",
88101
"title": "Hypertext Transfer Protocol Version 3 (HTTP/3)"
89102
},
90103
"WEBTRANSPORT-HTTP3": {
91104
"authors": ["V. Vasiliev"],
92-
"href": "https://tools.ietf.org/html/draft-ietf-webtrans-http3",
105+
"href": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3",
93106
"publisher": "IETF",
94107
"title": "WebTransport over HTTP/3"
95108
},
96109
"HTTP3-DATAGRAM": {
97110
"authors": ["David Schinazi", "Lucas Pardue"],
98-
"href": "https://tools.ietf.org/html/draft-ietf-masque-h3-datagram",
111+
"href": "https://datatracker.ietf.org/doc/html/draft-ietf-masque-h3-datagram",
99112
"publisher": "IETF",
100113
"title": "Using QUIC Datagrams with HTTP/3"
101114
}
@@ -830,8 +843,8 @@ following is true:
830843
<li><p><var>byte</var> is 0x22 ("), 0x28 (left parenthesis), 0x29 (right parenthesis), 0x3A (:),
831844
0x3C (&lt;), 0x3E (>), 0x3F (?), 0x40 (@), 0x5B ([), 0x5C (\), 0x5D (]), 0x7B ({), 0x7D (}), or
832845
0x7F DEL.
833-
<!-- Delimiters from https://tools.ietf.org/html/rfc7230#section-3.2.6 except for ,/;= and
834-
including DEL -->
846+
<!-- Delimiters from https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6 except for ,/;=
847+
and including DEL -->
835848
</ul>
836849

837850
<p>The <dfn noexport>CORS-unsafe request-header names</dfn>, given a <a for=/>header list</a>
@@ -2087,13 +2100,13 @@ is a <a>filtered response</a> whose
20872100
</ol>
20882101

20892102
<p>A <dfn id=concept-fresh-response>fresh response</dfn> is a <a for=/>response</a> whose
2090-
<a href=https://tools.ietf.org/html/rfc7234#section-4.2.3>current age</a> is within its
2091-
<a href=https://tools.ietf.org/html/rfc7234#section-4.2.1>freshness lifetime</a>.
2103+
<a href=https://datatracker.ietf.org/doc/html/rfc7234#section-4.2.3>current age</a> is within its
2104+
<a href=https://datatracker.ietf.org/doc/html/rfc7234#section-4.2.1>freshness lifetime</a>.
20922105

20932106
<p>A <dfn id=concept-stale-while-revalidate-response>stale-while-revalidate response</dfn> is a
20942107
<a for=/>response</a> that is not a <a>fresh response</a> and whose
2095-
<a href=https://tools.ietf.org/html/rfc7234#section-4.2.3>current age</a> is within the
2096-
<a href=https://tools.ietf.org/html/rfc5861#section-3>stale-while-revalidate lifetime</a>.
2108+
<a href=https://datatracker.ietf.org/doc/html/rfc7234#section-4.2.3>current age</a> is within the
2109+
<a href=https://datatracker.ietf.org/doc/html/rfc5861#section-3>stale-while-revalidate lifetime</a>.
20972110

20982111
<p>A <dfn export id=concept-stale-response>stale response</dfn> is a <a for=/>response</a> that is
20992112
not a <a>fresh response</a> or a <a>stale-while-revalidate response</a>.
@@ -3722,7 +3735,7 @@ steps:
37223735
<li><var>request</var>'s <a for=request>current URL</a>'s <a for=url>host</a> is a
37233736
<a for=/>domain</a>
37243737
<li>Matching <var>request</var>'s <a for=request>current URL</a>'s <a for=url>host</a> per
3725-
<a href=https://tools.ietf.org/html/rfc6797#section-8.2>Known HSTS Host Domain Name Matching</a>
3738+
<a href=https://datatracker.ietf.org/doc/html/rfc6797#section-8.2>Known HSTS Host Domain Name Matching</a>
37263739
results in either a superdomain match with an asserted <code>includeSubDomains</code> directive
37273740
or a congruent match (with or without an asserted <code>includeSubDomains</code> directive).
37283741
[[!HSTS]]
@@ -4717,13 +4730,14 @@ steps. They return a <a for=/>response</a>.
47174730
<ol>
47184731
<li>
47194732
<p>If the user agent is not configured to block cookies for <var>httpRequest</var> (see
4720-
<a href=https://tools.ietf.org/html/rfc6265#section-7>section 7</a> of
4733+
<a href=https://datatracker.ietf.org/doc/html/rfc6265#section-7>section 7</a> of
47214734
[[!COOKIES]]), then:
47224735

47234736
<ol>
47244737
<li><p>Let <var>cookies</var> be the result of running the "cookie-string" algorithm (see
4725-
<a href=https://tools.ietf.org/html/rfc6265#section-5.4>section 5.4</a> of [[!COOKIES]]) with
4726-
the user agent's cookie store and <var>httpRequest</var>'s <a for=request>current URL</a>.
4738+
<a href=https://datatracker.ietf.org/doc/html/rfc6265#section-5.4>section 5.4</a> of
4739+
[[!COOKIES]]) with the user agent's cookie store and <var>httpRequest</var>'s
4740+
<a for=request>current URL</a>.
47274741

47284742
<li>If <var>cookies</var> is not the empty string, append
47294743
`<code>Cookie</code>`/<var>cookies</var> to <var>httpRequest</var>'s
@@ -4778,7 +4792,7 @@ steps. They return a <a for=/>response</a>.
47784792

47794793
<p>Set <var>storedResponse</var> to the result of selecting a response from the
47804794
<var>httpCache</var>, possibly needing validation, as per the
4781-
"<a href=https://tools.ietf.org/html/rfc7234#section-4>Constructing Responses from Caches</a>"
4795+
"<a href=https://datatracker.ietf.org/doc/html/rfc7234#section-4>Constructing Responses from Caches</a>"
47824796
chapter of <cite>HTTP Caching</cite> [[!HTTP-CACHING]], if any.
47834797

47844798
<p class=note>As mandated by HTTP, this still takes the `<code>Vary</code>`
@@ -4846,7 +4860,7 @@ steps. They return a <a for=/>response</a>.
48464860
</ol>
48474861

48484862
<p class=note>See also the
4849-
"<a href=https://tools.ietf.org/html/rfc7234#section-4.3.4>Sending a Validation Request</a>"
4863+
"<a href=https://datatracker.ietf.org/doc/html/rfc7234#section-4.3.4>Sending a Validation Request</a>"
48504864
chapter of <cite>HTTP Caching</cite> [[!HTTP-CACHING]].
48514865

48524866
<li><p>Otherwise, set <var>response</var> to <var>storedResponse</var> and set
@@ -4879,10 +4893,10 @@ steps. They return a <a for=/>response</a>.
48794893
<var>httpFetchParams</var>, <var>includeCredentials</var>, and <var>isNewConnectionFetch</var>.
48804894

48814895
<li><p>If <var>httpRequest</var>'s <a for=request>method</a> is
4882-
<a href=https://tools.ietf.org/html/rfc7231#safe.methods>unsafe</a> and
4896+
<a href=https://datatracker.ietf.org/doc/html/rfc7231#section-4.2.1>unsafe</a> and
48834897
<var>forwardResponse</var>'s <a for=response>status</a> is in the range 200 to 399, inclusive,
48844898
invalidate appropriate stored responses in <var>httpCache</var>, as per the
4885-
"<a href=https://tools.ietf.org/html/rfc7234#section-4.4>Invalidation</a>" chapter of
4899+
"<a href=https://datatracker.ietf.org/doc/html/rfc7234#section-4.4>Invalidation</a>" chapter of
48864900
<cite>HTTP Caching</cite>, and set <var>storedResponse</var> to null. [[!HTTP-CACHING]]
48874901

48884902
<li>
@@ -4893,7 +4907,7 @@ steps. They return a <a for=/>response</a>.
48934907
<li>
48944908
<p>Update <var>storedResponse</var>'s <a for=response>header list</a> using
48954909
<var>forwardResponse</var>'s <a for=response>header list</a>, as per the
4896-
"<a href=https://tools.ietf.org/html/rfc7234#section-4.3.4>Freshening Stored Responses upon Validation</a>"
4910+
"<a href=https://datatracker.ietf.org/doc/html/rfc7234#section-4.3.4>Freshening Stored Responses upon Validation</a>"
48974911
chapter of <cite>HTTP Caching</cite>. [[!HTTP-CACHING]]
48984912

48994913
<p class="note">This updates the stored response in cache as well.
@@ -4914,7 +4928,7 @@ steps. They return a <a for=/>response</a>.
49144928

49154929
<li>
49164930
<p>Store <var>httpRequest</var> and <var>forwardResponse</var> in <var>httpCache</var>, as per
4917-
the "<a href=https://tools.ietf.org/html/rfc7234#section-3>Storing Responses in Caches</a>"
4931+
the "<a href=https://datatracker.ietf.org/doc/html/rfc7234#section-3>Storing Responses in Caches</a>"
49184932
chapter of <cite>HTTP Caching</cite>. [[!HTTP-CACHING]]
49194933

49204934
<p class=note>If <var>forwardResponse</var> is a <a>network error</a>, this effectively caches
@@ -5287,12 +5301,12 @@ optional boolean <var>forceNewConnection</var> (default false), run these steps:
52875301
<li>
52885302
<p>If <var>includeCredentials</var> is true and the user agent is not configured to block
52895303
cookies for <var>request</var> (see
5290-
<a href=https://tools.ietf.org/html/rfc6265#section-7>section 7</a> of [[!COOKIES]]), then run
5291-
the "set-cookie-string" parsing algorithm (see
5292-
<a href=https://tools.ietf.org/html/rfc6265#section-5.2>section 5.2</a> of [[!COOKIES]]) on the
5293-
<a for=header>value</a> of each <var>header</var> whose <a for=header>name</a> is a
5294-
<a>byte-case-insensitive</a> match for `<code>Set-Cookie</code>` in <var>response</var>'s
5295-
<a for=response>header list</a>, if any, and <var>request</var>'s
5304+
<a href=https://datatracker.ietf.org/doc/html/rfc6265#section-7>section 7</a> of [[!COOKIES]]),
5305+
then run the "set-cookie-string" parsing algorithm (see
5306+
<a href=https://datatracker.ietf.org/doc/html/rfc6265#section-5.2>section 5.2</a> of
5307+
[[!COOKIES]]) on the <a for=header>value</a> of each <var>header</var> whose
5308+
<a for=header>name</a> is a <a>byte-case-insensitive</a> match for `<code>Set-Cookie</code>` in
5309+
<var>response</var>'s <a for=response>header list</a>, if any, and <var>request</var>'s
52965310
<a for=request>current URL</a>.
52975311

52985312
<p class=note>This is a fingerprinting vector.
@@ -7443,9 +7457,8 @@ fetch("https://www.example.com/")
74437457
"<code>http</code>", and true otherwise.
74447458

74457459
<li><p>Follow the requirements stated in step 2 to 5, inclusive, of the first set of steps in
7446-
<a href=http://tools.ietf.org/html/rfc6455#section-4.1>section 4.1</a> of The WebSocket Protocol
7447-
to establish a <a lt="obtain a WebSocket connection">WebSocket connection</a>.
7448-
[[!WSP]]
7460+
<a href=https://datatracker.ietf.org/doc/html/rfc6455#section-4.1>section 4.1</a> of The WebSocket
7461+
Protocol to establish a <a lt="obtain a WebSocket connection">WebSocket connection</a>. [[!WSP]]
74497462

74507463
<li><p>If that established a connection, return it, and return failure otherwise.
74517464
</ol>
@@ -7543,9 +7556,9 @@ therefore not shareable, a WebSocket connection is very close to identical to an
75437556
by the client, but not acknowledged by the server.
75447557

75457558
<li><p>Follow the requirements stated step 2 to step 6, inclusive, of the last set of steps in
7546-
<a href=http://tools.ietf.org/html/rfc6455#section-4.1>section 4.1</a> of The WebSocket Protocol
7547-
to validate <var>response</var>. This either results in <a>fail the WebSocket connection</a>
7548-
or <a>the WebSocket connection is established</a>.
7559+
<a href=https://datatracker.ietf.org/doc/html/rfc6455#section-4.1>section 4.1</a> of The
7560+
WebSocket Protocol to validate <var>response</var>. This either results in
7561+
<a>fail the WebSocket connection</a> or <a>the WebSocket connection is established</a>.
75497562
</ol>
75507563
</ol>
75517564

0 commit comments

Comments
 (0)