-
Notifications
You must be signed in to change notification settings - Fork 341
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Return a content-encoding
header for resource timing and more
#1796
base: main
Are you sure you want to change the base?
Changes from all commits
2c939cb
dc2b573
7647a50
f7bdfa9
94ecd4c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -370,6 +370,8 @@ following <a for=struct>items</a>: [[RESOURCE-TIMING]] [[NAVIGATION-TIMING]] | |
<dd>A number. | ||
<dt><dfn export for="response body info">content type</dfn> (default the empty string) | ||
<dd>An <a for=/>ASCII string</a>. | ||
<dt><dfn export for="response body info">content encoding</dfn> (default the empty string) | ||
<dd>An <a for=/>ASCII string</a>. | ||
</dl> | ||
|
||
<div algorithm> | ||
|
@@ -1176,6 +1178,7 @@ is a <a>byte-case-insensitive</a> match for one of | |
<li>`<a http-header><code>Access-Control-Request-Headers</code></a>` | ||
<li>`<a http-header><code>Access-Control-Request-Method</code></a>` | ||
<li>`<code>Connection</code>` | ||
<li>`<code>Content-Encoding</code>` | ||
<li>`<code>Content-Length</code>` | ||
<li>`<code>Cookie</code>` | ||
<li>`<code>Cookie2</code>` | ||
|
@@ -3946,6 +3949,40 @@ Content-Type: | |
</div> | ||
</div> | ||
|
||
<h3 id=content-encoding>`<code>Content-Encoding</code>` header</h3> | ||
|
||
<p>The `<code>Content-Encoding</code>` header is largely defined in HTTP. Its processing model is | ||
defined here as the model defined in HTTP is not compatible with web content. [[HTTP]] | ||
|
||
<div algorithm> | ||
<p>To <dfn export for="header list" lt="extract an encoding type|extracting an encoding type"> | ||
extract an encoding type</dfn> from a <a for=/>header list</a> <var>headers</var>, run these steps: | ||
|
||
<ol> | ||
<li><p>Let <var>values</var> be the result of | ||
<a for="header list">getting, decoding, and splitting</a> `<code>Content-Encoding</code>` from | ||
<var>headers</var>. | ||
|
||
<li><p>If <var>values</var> is null, then return null. | ||
|
||
<li><p>Let <var>candidateValue</var> be null. | ||
|
||
<li> | ||
<p><a for=list>For each</a> <var>value</var> of <var>values</var>: | ||
|
||
<ol> | ||
<li><p>If <var>candidateValue</var> is null, then set <var>candidateValue</var> to | ||
<var>value</var>. | ||
|
||
<li><p>Otherwise, if <var>value</var> is not <var>candidateValue</var>, return failure. | ||
</ol> | ||
|
||
<li><p>If <var>candidateValue</var> is the empty string or has a <a for=/>code point</a> that is | ||
not an <a for=/>ASCII digit</a>, then return null. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why would it only contain digits? Typical values for |
||
|
||
<li><p>Return <var>candidateValue</var>, interpreted as a string. | ||
</ol> | ||
</div> | ||
|
||
<h3 id=x-content-type-options-header>`<code>X-Content-Type-Options</code>` header</h3> | ||
|
||
|
@@ -5004,6 +5041,15 @@ steps: | |
|
||
<li><p>Let <var>type</var> be <var>blob</var>'s {{Blob/type}}. | ||
|
||
<li><p>Let <var>coding</var> be the empty string. | ||
|
||
<li><p>Let <var>accept-coding</var> be the result of <a for="header list">getting</a> | ||
`<code>Accept-Encoding</code>` from <var>request</var>'s <a for=request>header list</a>. | ||
If <var>accept-encoding</var> is not null and the server selects one of the encoding options, | ||
set <var>coding</var> to the selected encoding option; otherwise, i.e., no encoding is used, | ||
set <var>coding</var> to <a href=https://httpwg.org/specs/rfc9110.html#field.accept-encoding> | ||
<code>"identity"</code></a>. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The indentation here doesn't follow the style guide. How would we know what the server selects here? This doesn't make much sense to me. |
||
|
||
<li> | ||
<p>If <var>request</var>'s <a for=request>header list</a> | ||
<a for="header list">does not contain</a> `<code>Range</code>`: | ||
|
@@ -5019,7 +5065,9 @@ steps: | |
|
||
<li><p>Set <var>response</var>'s <a for=response>header list</a> to « | ||
(`<code>Content-Length</code>`, <var>serializedFullLength</var>), | ||
(`<code>Content-Type</code>`, <var>type</var>) ». | ||
(`<code>Content-Type</code>`, <var>type</var>), | ||
(`<code>Content-Encoding</code>`, <var>coding</var>) ». | ||
|
||
</ol> | ||
|
||
<li> | ||
|
@@ -5088,7 +5136,8 @@ steps: | |
<li><p>Set <var>response</var>'s <a for=response>header list</a> to « | ||
(`<code>Content-Length</code>`, <var>serializedSlicedLength</var>), | ||
(`<code>Content-Type</code>`, <var>type</var>), (`<code>Content-Range</code>`, | ||
<var>contentRange</var>) ». | ||
<var>contentRange</var>), (`<code>Content-Encoding</code>`, <var>coding</var>) ». | ||
|
||
</ol> | ||
|
||
<li><p>Return <var>response</var>. | ||
|
@@ -5105,10 +5154,21 @@ steps: | |
<li><p>Let <var>mimeType</var> be <var>dataURLStruct</var>'s | ||
<a for="data: URL struct">MIME type</a>, <a lt="serialize a MIME type to bytes">serialized</a>. | ||
|
||
<li><p>Let <var>coding</var> be the empty string. | ||
|
||
<li><p>Let <var>accept-coding</var> be the result of <a for="header list">getting</a> | ||
`<code>Accept-Encoding</code>` from <var>request</var>'s <a for=request>header list</a>. | ||
If <var>accept-encoding</var> is not null and the server selects one of the encoding options, | ||
set <var>coding</var> to the selected encoding option; otherwise, i.e., no encoding is used, | ||
set <var>coding</var> to <a href=https://httpwg.org/specs/rfc9110.html#field.accept-encoding> | ||
<code>"identity"</code></a>. | ||
|
||
<li><p>Return a new <a for=/>response</a> whose <a for=response>status message</a> is | ||
`<code>OK</code>`, <a for=response>header list</a> is « (`<code>Content-Type</code>`, | ||
<var>mimeType</var>) », and <a for=response>body</a> is <var>dataURLStruct</var>'s | ||
<a for="data: URL struct">body</a> <a for="byte sequence">as a body</a>. | ||
<var>mimeType</var>), (`<code>Content-Encoding</code>`, <var>coding</var>) », and | ||
<a for=response>body</a> is <var>dataURLStruct</var>'s <a for="data: URL struct"> | ||
body</a> <a for="byte sequence">as a body</a>. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This also doesn't follow the formatting guidelines. Also, do we really want to return |
||
|
||
</ol> | ||
|
||
<dt>"<code>file</code>" | ||
|
@@ -9127,6 +9187,7 @@ Gavin Carothers, | |
Glenn Maynard, | ||
Graham Klyne, | ||
Gregory Terzian, | ||
Guohui Deng(邓国辉)<!-- guohuideng2024; GitHub -->, | ||
Hal Lockhart, | ||
Hallvord R. M. Steen, | ||
Harris Hancock, | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So the idea here is that duplicate values are okay as long as they are fully identical? So
gzip
andGZIP
is not okay?