當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。