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