http2.createSecureServer(options[, onRequestHandler])
历史
版本 | 变化 |
---|---|
v13.0.0 |
|
v13.3.0、v12.16.0 | 添加了 |
v13.3.0、v12.16.0 | 添加了 |
v15.10.0、v14.16.0、v12.21.0、v10.24.0 | 添加了 |
v14.4.0、v12.18.0、v10.21.0 | 添加了 |
v10.12.0 | 添加了 |
v8.9.3 | 添加了默认限制为 10 的 |
v8.9.3 | 添加了默认限制为 128 个标头对的 |
v8.4.0 | 添加于:v8.4.0 |
参数
options
<Object>allowHTTP1
<boolean> 设置为true
时,不支持 HTTP/2 的传入客户端连接将降级为 HTTP/1.x。请参阅'unknownProtocol'
false
。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'
事件并关闭和销毁流。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> 在连接时发送到远程对等方的初始设置。- ...:可以提供任何
tls.createServer()
pfx
或key
/cert
)。 origins
<string[]> 在创建新服务器Http2Session
后立即在ORIGIN
框架内发送的原始字符串数组。unknownProtocolTimeout
<number> 指定发出'unknownProtocol'
10000
。
onRequestHandler
<Function> 见 Compatibility API- 返回: <Http2SecureServer>
返回创建和管理 Http2Session
实例的 tls.Server
实例。
const http2 = require('node:http2');
const fs = require('node:fs');
const options = {
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-cert.pem')
};
// Create a secure HTTP/2 server
const server = http2.createSecureServer(options);
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.createServer([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.createSecureServer(options[, onRequestHandler])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。