@@ -218,13 +218,6 @@ number.
218
218
<p class="note no-backref"> <a>HTTP(S) scheme</a> and <a>fetch scheme</a> are also used by
219
219
<cite> HTML</cite> . [[HTML]]
220
220
221
- <hr>
222
-
223
- <p id=fetch-url> A <dfn>response URL</dfn> is a <a for=/>URL</a> for which implementations need not
224
- store the <a for=url>fragment</a> as it is never exposed. When
225
- <a lt="URL serializer">serialized</a> , <a for="URL serializer"><i>exclude fragment</i></a> is set to
226
- true, meaning implementations can store the <a for=url>fragment</a> nonetheless.
227
-
228
221
229
222
<h3 id=http>HTTP</h3>
230
223
@@ -1840,15 +1833,15 @@ end-user.
1840
1833
1841
1834
<p> A <a for=/>response</a> has an associated
1842
1835
<dfn export for=response id=concept-response-url>URL</dfn> . It is a pointer to the last
1843
- <a>response URL</a> in <a for=/>response</a> 's <a for=response>URL list</a> and null if
1844
- <a for=/>response</a> 's <a for=response>URL list</a> is the empty list .
1836
+ <a for=/> URL</a> in <a for=/>response</a> 's <a for=response>URL list</a> and null if
1837
+ <a for=/>response</a> 's <a for=response>URL list</a> <a for=list> is empty</a> .
1845
1838
1846
1839
<p> A <a for=/>response</a> has an associated
1847
1840
<dfn export for=response id=concept-response-url-list>URL list</dfn> (a <a for=/>list</a> of zero or
1848
- more <a>response URLs</a> ). Unless stated otherwise, it is the empty list.
1841
+ more <a for=/> URLs</a> ). Unless stated otherwise, it is the empty list.
1849
1842
1850
- <p class="note no-backref"> Except for the last <a>response URL</a> , if any, a
1851
- <a for=/> response</a> 's <a for=response> URL list</a> cannot be exposed to script. That would violate
1843
+ <p class="note no-backref"> Except for the last <a for=/> URL</a> , if any, a <a for=/>response</a> 's
1844
+ <a for=response> URL list</a> is not exposed to script as that would violate
1852
1845
<a>atomic HTTP redirect handling</a> .
1853
1846
1854
1847
<p> A <a for=/>response</a> has an associated
@@ -2028,8 +2021,9 @@ not a <a>fresh response</a> or a <a>stale-while-revalidate response</a>.
2028
2021
2029
2022
<hr>
2030
2023
2031
- <p> The <dfn export for=response id=concept-response-location-url>location URL</dfn> algorithm of
2032
- given a <a for=/>response</a> <var> response</var> is the following steps. They return null, failure,
2024
+ <p> The <dfn export for=response id=concept-response-location-url>location URL</dfn> of a
2025
+ <a for=/>response</a> <var> response</var> , given null or an <a for=/>ASCII string</a>
2026
+ <var> requestFragment</var> , is the value returned by the following steps. They return null, failure,
2033
2027
or a <a for=/>URL</a> .
2034
2028
2035
2029
<ol>
@@ -2049,6 +2043,13 @@ or a <a for=/>URL</a>.
2049
2043
<var> response</var> 's <a for=response>URL</a> will be null, meaning that <var> location</var> will
2050
2044
only parse successfully if it is an <a>absolute-URL-with-fragment string</a> .
2051
2045
2046
+ <li>
2047
+ <p> If <var> locationURL</var> 's <a for=url>fragment</a> is null, then set <var>locationURL</var>' s
2048
+ <a for=url>fragment</a> to <var> requestFragment</var> .
2049
+
2050
+ <p class=note> This ensures that synthetic (indeed, all) responses follow the processing model for
2051
+ redirects defined by HTTP. [[HTTP-SEMANTICS]]
2052
+
2052
2053
<li><p> Return <var> location</var> .
2053
2054
</ol>
2054
2055
@@ -3976,7 +3977,8 @@ run these steps:
3976
3977
<a>filtered response</a> , and <var> response</var> 's
3977
3978
<a for="filtered response">internal response</a> otherwise.
3978
3979
3979
- <li><p> Let <var> locationURL</var> be <var> actualResponse</var> 's <a for=response>location URL</a> .
3980
+ <li><p> Let <var> locationURL</var> be <var> actualResponse</var> 's <a for=response>location URL</a>
3981
+ given <var> request</var> 's <a for=request>current URL</a>' s <a for=url>fragment</a> .
3980
3982
3981
3983
<li><p> If <var> locationURL</var> is null, then return <var> response</var> .
3982
3984
0 commit comments