http2.createServer([options][, onRequestHandler])
历史
版本 | 变化 |
---|---|
v13.0.0 |
|
v13.3.0、v12.16.0 | 添加了 |
v13.3.0、v12.16.0 | 添加了 |
v12.4.0 |
|
v15.10.0、v14.16.0、v12.21.0、v10.24.0 | 添加了 |
v14.4.0、v12.18.0、v10.21.0 | 添加了 |
v9.6.0 | 添加了 |
v8.9.3 | 添加了默认限制为 10 的 |
v8.9.3 | 添加了默认限制为 128 个标头对的 |
v8.4.0 | 添加于:v8.4.0 |
参数
options
<Object>maxDeflateDynamicTableSize
<number> 设置用于缩小标题字段的最大动态表大小。 默认:4Kib
。maxSettings
<number> 设置每个SETTINGS
帧的最大设置条目数。允许的最小值是1
。 默认:32
。maxSessionMemory
<number> 设置Http2Session
允许使用的最大内存。该值以兆字节数表示,例如1
等于 1 兆字节。允许的最小值是1
。这是基于信用的限制,现有的Http2Stream
可能会导致超出此限制,但新的Http2Stream
实例将在超出此限制时被拒绝。当前Http2Stream
会话数、标头压缩表的当前内存使用、当前排队发送的数据以及未确认的PING
和SETTINGS
帧都计入当前限制。 默认:10
。maxHeaderListPairs
<number> 设置标题条目的最大数量。这类似于http.Server#maxHeadersCount
http.ClientRequest#maxHeadersCount
4
。 默认:128
。maxOutstandingPings
<number> 设置未完成的未确认 ping 的最大数量。 默认:10
。maxSendHeaderBlockLength
<number> 设置序列化、压缩的标头块的最大允许大小。尝试发送超出此限制的标头将导致发出'frameError'
事件并关闭和销毁流。虽然这会将最大允许大小设置为整个标头块,但nghttp2
(内部 http2 库)对每个解压缩的键/值对都有65536
的限制。paddingStrategy
<number>用于确定要使用的填充量的策略HEADERS
和DATA
帧。默认:http2.constants.PADDING_STRATEGY_NONE
.值可能是以下之一:http2.constants.PADDING_STRATEGY_NONE
:不应用填充。http2.constants.PADDING_STRATEGY_MAX
:应用由内部实现确定的最大填充量。http2.constants.PADDING_STRATEGY_ALIGNED
:尝试应用足够的填充以确保总帧长度(包括 9 字节标头)是 8 的倍数。对于每个帧,存在由当前流控制确定的最大允许填充字节数状态和设置。如果此最大值小于确保对齐所需的计算量,则使用最大值并且总帧长度不必对齐为 8 个字节。
peerMaxConcurrentStreams
<number> 设置远程对等方的最大并发流数,就像已接收到SETTINGS
帧一样。如果远程对等方为maxConcurrentStreams
设置自己的值,将被覆盖。 默认:100
。maxSessionInvalidFrames
<integer> 设置会话关闭前允许的最大无效帧数。 默认:1000
。maxSessionRejectedStreams
<integer> 设置会话关闭前允许的创建时拒绝的最大流数。每个拒绝都与NGHTTP2_ENHANCE_YOUR_CALM
错误相关联,该错误应该告诉对等方不要再打开任何流,因此继续打开流被视为行为不端的对等方的标志。 默认:100
。settings
<HTTP/2 Settings Object> 在连接时发送到远程对等方的初始设置。Http1IncomingMessage
<http.IncomingMessage> 指定用于 HTTP/1 回退的IncomingMessage
类。用于扩展原始http.IncomingMessage
。 默认:http.IncomingMessage
。Http1ServerResponse
<http.ServerResponse> 指定用于 HTTP/1 回退的ServerResponse
类。用于扩展原始http.ServerResponse
。 默认:http.ServerResponse
。Http2ServerRequest
<http2.Http2ServerRequest> 指定要使用的Http2ServerRequest
类。用于扩展原始Http2ServerRequest
。 默认:Http2ServerRequest
。Http2ServerResponse
<http2.Http2ServerResponse> 指定要使用的Http2ServerResponse
类。用于扩展原始Http2ServerResponse
。 默认:Http2ServerResponse
。unknownProtocolTimeout
<number> 指定发出'unknownProtocol'
10000
。- ...:可以提供任何
net.createServer()
onRequestHandler
<Function> 见 Compatibility API- 返回: <Http2Server>
返回创建和管理 Http2Session
实例的 net.Server
实例。
由于没有已知的浏览器支持 unencrypted HTTP/2 ,因此在与浏览器客户端通信时需要使用
。http2.createSecureServer()
const http2 = require('node:http2');
// Create an unencrypted HTTP/2 server.
// Since there are no browsers known that support
// unencrypted HTTP/2, the use of `http2.createSecureServer()`
// is necessary when communicating with browser clients.
const server = http2.createServer();
server.on('stream', (stream, headers) => {
stream.respond({
'content-type': 'text/html; charset=utf-8',
':status': 200
});
stream.end('<h1>Hello World</h1>');
});
server.listen(80);
相关用法
- Node.js http2.createServer()用法及代码示例
- Node.js http2.createSecureServer(options[, onRequestHandler])用法及代码示例
- Node.js http2.connect(authority[, options][, listener])用法及代码示例
- Node.js http2.connect()用法及代码示例
- Node.js http2.constants用法及代码示例
- Node.js http2.bufferSize用法及代码示例
- Node.js http2.getDefaultSettings()用法及代码示例
- Node.js http2.getUnpackedSettings()用法及代码示例
- Node.js http2.getPackedSettings([settings])用法及代码示例
- Node.js http2.getPackedSettings()用法及代码示例
- Node.js http2.aborted用法及代码示例
- Node.js ServerHttp2Stream http2stream.pushStream(headers[, options], callback)用法及代码示例
- Node.js http2session.destroyed用法及代码示例
- Node.js http2session.type用法及代码示例
- Node.js http2session.ping()用法及代码示例
- Node.js http2session.connecting用法及代码示例
- Node.js ServerHttp2Stream http2stream.respond([headers[, options]])用法及代码示例
- Node.js http2stream.setTimeout()用法及代码示例
- Node.js http2session.setTimeout()用法及代码示例
- Node.js http2stream.id用法及代码示例
- Node.js http2stream.closed用法及代码示例
- Node.js http2stream.rstCode用法及代码示例
- Node.js http2session.encrypted用法及代码示例
- Node.js http2session.closed用法及代码示例
- Node.js http2stream.pushAllowed用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 http2.createServer([options][, onRequestHandler])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。