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