当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Node.js http2.createSecureServer(options[, onRequestHandler])用法及代码示例

http2.createSecureServer(options[, onRequestHandler])

历史
版本变化
v13.0.0

PADDING_STRATEGY_CALLBACK 已等同于提供 PADDING_STRATEGY_ALIGNED 并且 selectPadding 已被删除。

v13.3.0、v12.16.0

添加了 maxSessionRejectedStreams 选项,默认值为 100。

v13.3.0、v12.16.0

添加了 maxSessionInvalidFrames 选项,默认值为 1000。

v15.10.0、v14.16.0、v12.21.0、v10.24.0

添加了 unknownProtocolTimeout 选项,默认值为 10000。

v14.4.0、v12.18.0、v10.21.0

添加了 maxSettings 选项,默认值为 32。

v10.12.0

添加了origins 选项以在Http2Session 启动时自动发送ORIGIN 帧。

v8.9.3

添加了默认限制为 10 的 maxOutstandingPings 选项。

v8.9.3

添加了默认限制为 128 个标头对的 maxHeaderListPairs 选项。

v8.4.0

添加于:v8.4.0


参数
  • options <Object>
    • allowHTTP1 <boolean> 设置为 true 时,不支持 HTTP/2 的传入客户端连接将降级为 HTTP/1.x。请参阅 'unknownProtocol' 事件。请参阅ALPN negotiation默认: false
    • maxDeflateDynamicTableSize <number> 设置用于缩小标题字段的最大动态表大小。 默认: 4Kib
    • maxSettings <number> 设置每个 SETTINGS 帧的最大设置条目数。允许的最小值是 1默认: 32
    • maxSessionMemory <number> 设置Http2Session 允许使用的最大内存。该值以兆字节数表示,例如1 等于 1 兆字节。允许的最小值是 1 。这是基于信用的限制,现有的 Http2Stream 可能会导致超出此限制,但新的 Http2Stream 实例将在超出此限制时被拒绝。当前 Http2Stream 会话数、标头压缩表的当前内存使用、当前排队发送的数据以及未确认的 PINGSETTINGS 帧都计入当前限制。 默认: 10
    • maxHeaderListPairs <number> 设置标题条目的最大数量。这类似于 http.Server#maxHeadersCount http.ClientRequest#maxHeadersCount 。最小值为 4默认: 128
    • maxOutstandingPings <number> 设置未完成的未确认 ping 的最大数量。 默认: 10
    • maxSendHeaderBlockLength <number> 设置序列化、压缩的标头块的最大允许大小。尝试发送超出此限制的标头将导致发出 'frameError' 事件并关闭和销毁流。
    • paddingStrategy <number>用于确定要使用的填充量的策略HEADERSDATA帧。默认: 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() 选项。对于服务器,通常需要标识选项(pfxkey /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);

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 http2.createSecureServer(options[, onRequestHandler])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。