summaryrefslogtreecommitdiff
path: root/doc/api/http2.md
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2018-01-03 11:15:57 -0800
committerJames M Snell <jasnell@gmail.com>2018-01-05 12:35:33 -0800
commit882e7ef354fd1d11f87c96648fd4b81613d788af (patch)
tree8ccf758eaaee0b18e9dea55f54c979ba04898fa4 /doc/api/http2.md
parentfeaf6ac3dc923ed7b2fcaa3d44c62bf90674a128 (diff)
downloadandroid-node-v8-882e7ef354fd1d11f87c96648fd4b81613d788af.tar.gz
android-node-v8-882e7ef354fd1d11f87c96648fd4b81613d788af.tar.bz2
android-node-v8-882e7ef354fd1d11f87c96648fd4b81613d788af.zip
http2: implement maxSessionMemory
The maxSessionMemory is a cap for the amount of memory an Http2Session is permitted to consume. If exceeded, new `Http2Stream` sessions will be rejected with an `ENHANCE_YOUR_CALM` error and existing `Http2Stream` instances that are still receiving headers will be terminated with an `ENHANCE_YOUR_CALM` error. PR-URL: https://github.com/nodejs/node/pull/17967 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'doc/api/http2.md')
-rw-r--r--doc/api/http2.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/api/http2.md b/doc/api/http2.md
index 4a071272fa..f87824e932 100644
--- a/doc/api/http2.md
+++ b/doc/api/http2.md
@@ -1633,6 +1633,15 @@ changes:
* `options` {Object}
* `maxDeflateDynamicTableSize` {number} Sets the maximum dynamic table size
for deflating header fields. **Default:** `4Kib`
+ * `maxSessionMemory`{number} Sets the maximum memory that the `Http2Session`
+ is permitted to use. The value is expressed in terms of number of megabytes,
+ e.g. `1` equal 1 megabyte. The minimum value allowed is `1`. **Default:**
+ `10`. This is a credit based limit, existing `Http2Stream`s may cause this
+ limit to be exceeded, but new `Http2Stream` instances will be rejected
+ while this limit is exceeded. The current number of `Http2Stream` sessions,
+ the current memory use of the header compression tables, current data
+ queued to be sent, and unacknowledged PING and SETTINGS frames are all
+ counted towards the current limit.
* `maxHeaderListPairs` {number} Sets the maximum number of header entries.
**Default:** `128`. The minimum value is `4`.
* `maxOutstandingPings` {number} Sets the maximum number of outstanding,
@@ -1711,6 +1720,15 @@ changes:
`false`. See the [`'unknownProtocol'`][] event. See [ALPN negotiation][].
* `maxDeflateDynamicTableSize` {number} Sets the maximum dynamic table size
for deflating header fields. **Default:** `4Kib`
+ * `maxSessionMemory`{number} Sets the maximum memory that the `Http2Session`
+ is permitted to use. The value is expressed in terms of number of megabytes,
+ e.g. `1` equal 1 megabyte. The minimum value allowed is `1`. **Default:**
+ `10`. This is a credit based limit, existing `Http2Stream`s may cause this
+ limit to be exceeded, but new `Http2Stream` instances will be rejected
+ while this limit is exceeded. The current number of `Http2Stream` sessions,
+ the current memory use of the header compression tables, current data
+ queued to be sent, and unacknowledged PING and SETTINGS frames are all
+ counted towards the current limit.
* `maxHeaderListPairs` {number} Sets the maximum number of header entries.
**Default:** `128`. The minimum value is `4`.
* `maxOutstandingPings` {number} Sets the maximum number of outstanding,
@@ -1794,6 +1812,15 @@ changes:
* `options` {Object}
* `maxDeflateDynamicTableSize` {number} Sets the maximum dynamic table size
for deflating header fields. **Default:** `4Kib`
+ * `maxSessionMemory`{number} Sets the maximum memory that the `Http2Session`
+ is permitted to use. The value is expressed in terms of number of megabytes,
+ e.g. `1` equal 1 megabyte. The minimum value allowed is `1`. **Default:**
+ `10`. This is a credit based limit, existing `Http2Stream`s may cause this
+ limit to be exceeded, but new `Http2Stream` instances will be rejected
+ while this limit is exceeded. The current number of `Http2Stream` sessions,
+ the current memory use of the header compression tables, current data
+ queued to be sent, and unacknowledged PING and SETTINGS frames are all
+ counted towards the current limit.
* `maxHeaderListPairs` {number} Sets the maximum number of header entries.
**Default:** `128`. The minimum value is `1`.
* `maxOutstandingPings` {number} Sets the maximum number of outstanding,