| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent d6d05ba commit 062b2f7
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -365,8 +365,7 @@ added: v8.4.0 | |||
| 365 | 365 | * `stream` {Http2Stream} A reference to the stream | |
| 366 | 366 | * `headers` {HTTP/2 Headers Object} An object describing the headers | |
| 367 | 367 | * `flags` {number} The associated numeric flags | |
| 368 | - * `rawHeaders` {Array} An array containing the raw header names followed by | ||
| 369 | - their respective values. | ||
| 368 | + * `rawHeaders` {HTTP/2 Raw Headers} An array containing the raw headers | ||
| 370 | 369 | ||
| 371 | 370 | The `'stream'` event is emitted when a new `Http2Stream` is created. | |
| 372 | 371 | ||
@@ -1087,7 +1086,7 @@ changes: | |||
| 1087 | 1086 | description: Allow passing headers in raw array format. | |
| 1088 | 1087 | --> | |
| 1089 | 1088 | ||
| 1090 | - * `headers` {HTTP/2 Headers Object|Array} | ||
| 1089 | + * `headers` {HTTP/2 Headers Object|HTTP/2 Raw Headers} | ||
| 1091 | 1090 | ||
| 1092 | 1091 | * `options` {Object} | |
| 1093 | 1092 | * `endStream` {boolean} `true` if the `Http2Stream` _writable_ side should | |
@@ -1675,11 +1674,12 @@ added: v8.4.0 | |||
| 1675 | 1674 | ||
| 1676 | 1675 | * `headers` {HTTP/2 Headers Object} | |
| 1677 | 1676 | * `flags` {number} | |
| 1677 | + * `rawHeaders` {HTTP/2 Raw Headers} | ||
| 1678 | 1678 | ||
| 1679 | 1679 | The `'headers'` event is emitted when an additional block of headers is received | |
| 1680 | 1680 | for a stream, such as when a block of `1xx` informational headers is received. | |
| 1681 | - The listener callback is passed the [HTTP/2 Headers Object][] and flags | ||
| 1682 | - associated with the headers. | ||
| 1681 | + The listener callback is passed the [HTTP/2 Headers Object][], flags associated | ||
| 1682 | + with the headers, and the headers in raw format (see [HTTP/2 Raw Headers][]). | ||
| 1683 | 1683 | ||
| 1684 | 1684 | ```js | |
| 1685 | 1685 | stream.on('headers', (headers, flags) => { | |
@@ -1714,11 +1714,13 @@ added: v8.4.0 | |||
| 1714 | 1714 | ||
| 1715 | 1715 | * `headers` {HTTP/2 Headers Object} | |
| 1716 | 1716 | * `flags` {number} | |
| 1717 | + * `rawHeaders` {HTTP/2 Raw Headers} | ||
| 1717 | 1718 | ||
| 1718 | 1719 | The `'response'` event is emitted when a response `HEADERS` frame has been | |
| 1719 | 1720 | received for this stream from the connected HTTP/2 server. The listener is | |
| 1720 | - invoked with two arguments: an `Object` containing the received | ||
| 1721 | - [HTTP/2 Headers Object][], and flags associated with the headers. | ||
| 1721 | + invoked with three arguments: an `Object` containing the received | ||
| 1722 | + [HTTP/2 Headers Object][], flags associated with the headers, and the headers | ||
| 1723 | + in raw format (see [HTTP/2 Raw Headers][]). | ||
| 1722 | 1724 | ||
| 1723 | 1725 | ```mjs | |
| 1724 | 1726 | import { connect } from 'node:http2'; | |
@@ -1866,7 +1868,7 @@ changes: | |||
| 1866 | 1868 | description: Allow explicitly setting date headers. | |
| 1867 | 1869 | --> | |
| 1868 | 1870 | ||
| 1869 | - * `headers` {HTTP/2 Headers Object|Array} | ||
| 1871 | + * `headers` {HTTP/2 Headers Object|HTTP/2 Raw Headers} | ||
| 1870 | 1872 | * `options` {Object} | |
| 1871 | 1873 | * `endStream` {boolean} Set to `true` to indicate that the response will not | |
| 1872 | 1874 | include payload data. | |
@@ -2350,8 +2352,7 @@ added: v8.4.0 | |||
| 2350 | 2352 | * `stream` {Http2Stream} A reference to the stream | |
| 2351 | 2353 | * `headers` {HTTP/2 Headers Object} An object describing the headers | |
| 2352 | 2354 | * `flags` {number} The associated numeric flags | |
| 2353 | - * `rawHeaders` {Array} An array containing the raw header names followed by | ||
| 2354 | - their respective values. | ||
| 2355 | + * `rawHeaders` {HTTP/2 Raw Headers} An array containing the raw headers | ||
| 2355 | 2356 | ||
| 2356 | 2357 | The `'stream'` event is emitted when a `'stream'` event has been emitted by | |
| 2357 | 2358 | an `Http2Session` associated with the server. | |
@@ -2606,8 +2607,7 @@ added: v8.4.0 | |||
| 2606 | 2607 | * `stream` {Http2Stream} A reference to the stream | |
| 2607 | 2608 | * `headers` {HTTP/2 Headers Object} An object describing the headers | |
| 2608 | 2609 | * `flags` {number} The associated numeric flags | |
| 2609 | - * `rawHeaders` {Array} An array containing the raw header names followed by | ||
| 2610 | - their respective values. | ||
| 2610 | + * `rawHeaders` {HTTP/2 Raw Headers} An array containing the raw headers | ||
| 2611 | 2611 | ||
| 2612 | 2612 | The `'stream'` event is emitted when a `'stream'` event has been emitted by | |
| 2613 | 2613 | an `Http2Session` associated with the server. | |
@@ -3450,6 +3450,32 @@ server.on('stream', (stream, headers) => { | |||
| 3450 | 3450 | }); | |
| 3451 | 3451 | ``` | |
| 3452 | 3452 | ||
| 3453 | + #### Raw headers | ||
| 3454 | + | ||
| 3455 | + In some APIs, in addition to object format, headers can also be passed or | ||
| 3456 | + accessed as a raw flat array, preserving details of ordering and | ||
| 3457 | + duplicate keys to match the raw transmission format. | ||
| 3458 | + | ||
| 3459 | + In this format the keys and values are in the same list. It is _not_ a | ||
| 3460 | + list of tuples. So, the even-numbered offsets are key values, and the | ||
| 3461 | + odd-numbered offsets are the associated values. Duplicate headers are | ||
| 3462 | + not merged and so each key-value pair will appear separately. | ||
| 3463 | + | ||
| 3464 | + This can be useful for cases such as proxies, where existing headers | ||
| 3465 | + should be exactly forwarded as received, or as a performance | ||
| 3466 | + optimization when the headers are already available in raw format. | ||
| 3467 | + | ||
| 3468 | + ```js | ||
| 3469 | + const rawHeaders = [ | ||
| 3470 | + ':status', | ||
| 3471 | + '404', | ||
| 3472 | + 'content-type', | ||
| 3473 | + 'text/plain', | ||
| 3474 | + ]; | ||
| 3475 | + | ||
| 3476 | + stream.respond(rawHeaders); | ||
| 3477 | + ``` | ||
| 3478 | + | ||
| 3453 | 3479 | #### Sensitive headers | |
| 3454 | 3480 | ||
| 3455 | 3481 | HTTP2 headers can be marked as sensitive, which means that the HTTP/2 | |
@@ -3476,6 +3502,10 @@ this flag is set automatically. | |||
| 3476 | 3502 | This property is also set for received headers. It will contain the names of | |
| 3477 | 3503 | all headers marked as sensitive, including ones marked that way automatically. | |
| 3478 | 3504 | ||
| 3505 | + For raw headers, this should still be set as a property on the array, like | ||
| 3506 | + `rawHeadersArray[http2.sensitiveHeaders] = ['cookie']`, not as a separate key | ||
| 3507 | + and value pair within the array itself. | ||
| 3508 | + | ||
| 3479 | 3509 | ### Settings object | |
| 3480 | 3510 | ||
| 3481 | 3511 | <!-- YAML | |
@@ -4072,16 +4102,10 @@ The request method as a string. Read-only. Examples: `'GET'`, `'DELETE'`. | |||
| 4072 | 4102 | added: v8.4.0 | |
| 4073 | 4103 | --> | |
| 4074 | 4104 | ||
| 4075 | - * Type: {string\[]} | ||
| 4105 | + * Type: {HTTP/2 Raw Headers} | ||
| 4076 | 4106 | ||
| 4077 | 4107 | The raw request/response headers list exactly as they were received. | |
| 4078 | 4108 | ||
| 4079 | - The keys and values are in the same list. It is _not_ a | ||
| 4080 | - list of tuples. So, the even-numbered offsets are key values, and the | ||
| 4081 | - odd-numbered offsets are the associated values. | ||
| 4082 | - | ||
| 4083 | - Header names are not lowercased, and duplicates are not merged. | ||
| 4084 | - | ||
| 4085 | 4109 | ```js | |
| 4086 | 4110 | // Prints something like: | |
| 4087 | 4111 | // | |
@@ -4762,7 +4786,7 @@ changes: | |||
| 4762 | 4786 | ||
| 4763 | 4787 | * `statusCode` {number} | |
| 4764 | 4788 | * `statusMessage` {string} | |
| 4765 | - * `headers` {Object|Array} | ||
| 4789 | + * `headers` {HTTP/2 Headers Object|HTTP/2 Raw Headers} | ||
| 4766 | 4790 | * Returns: {http2.Http2ServerResponse} | |
| 4767 | 4791 | ||
| 4768 | 4792 | Sends a response header to the request. The status code is a 3-digit HTTP | |
@@ -4906,6 +4930,7 @@ you need to implement any fall-back behavior yourself. | |||
| 4906 | 4930 | [HTTP/1]: http.md | |
| 4907 | 4931 | [HTTP/2]: https://tools.ietf.org/html/rfc7540 | |
| 4908 | 4932 | [HTTP/2 Headers Object]: #headers-object | |
| 4933 | + [HTTP/2 Raw Headers]: #raw-headers | ||
| 4909 | 4934 | [HTTP/2 Settings Object]: #settings-object | |
| 4910 | 4935 | [HTTP/2 Unencrypted]: https://http2.github.io/faq/#does-http2-require-encryption | |
| 4911 | 4936 | [HTTPS]: https.md | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -172,6 +172,7 @@ const customTypesMap = { | |||
| 172 | 172 | 'ClientHttp2Session': 'http2.html#class-clienthttp2session', | |
| 173 | 173 | 'ClientHttp2Stream': 'http2.html#class-clienthttp2stream', | |
| 174 | 174 | 'HTTP/2 Headers Object': 'http2.html#headers-object', | |
| 175 | + 'HTTP/2 Raw Headers': 'http2.html#raw-headers', | ||
| 175 | 176 | 'HTTP/2 Settings Object': 'http2.html#settings-object', | |
| 176 | 177 | 'http2.Http2ServerRequest': 'http2.html#class-http2http2serverrequest', | |
| 177 | 178 | 'http2.Http2ServerResponse': | |
| Back | FazBrowse Home | New Git URL |
0 commit comments