Node.js v14.20.0 文档


目录

http2 超文本传输协议2.0#

中英对照

http2 模块提供了 HTTP/2 协议的实现。 可以使用以下方式访问它:


核心 API#

中英对照

核心 API 提供了低层的接口,专门围绕支持 HTTP/2 协议功能而设计。 它专为与现有 HTTP/1 模块 API 兼容而设计。 但是,兼容性 API是。

服务器端示例#

中英对照

以下说明了使用核心 API 的简单 HTTP/2 服务器。 由于没有已知的浏览器支持未加密的 HTTP/2,所以在与浏览器客户端通信时必须使用 http2.createSecureServer()



客户端示例#

中英对照

以下说明了 HTTP/2 客户端:


Http2Session#

中英对照

    http2.Http2Session 类的实例表示 HTTP/2 客户端和服务器之间的活动通信会话。 此类的实例旨在由用户代码直接构造。

    Http2Session 与 Socket#

    中英对照

    每个 Http2Session 实例在创建时都与 net.Sockettls.TLSSocket 关联。 当 SocketHttp2Session 被摧毁时,两者都会被摧毁。

    'close' 事件#

    中英对照

    'close' 事件在 Http2Session 被销毁后触发。 其监听器不需要任何参数。

    'connect' 事件#

    中英对照

      一旦 Http2Session 成功连接到远程对等方并且通信可以开始,则会触发 'connect' 事件。

      'error' 事件#

      中英对照

        'error' 事件在处理 Http2Session 期间发生错误时触发。

        'frameError' 事件#

        中英对照

          当尝试在会话上发送帧时发生错误时会触发 'frameError' 事件。 如果无法发送的帧与特定的 Http2Stream 相关联,则会尝试在 Http2Stream 上触发 'frameError' 事件。

          'goaway' 事件#

          中英对照

            接收到 GOAWAY 帧时触发 'goaway' 事件。

            'localSettings' 事件#

            中英对照

              当接收到确认 SETTINGS 帧时触发 'localSettings' 事件。

              
              
              'ping' 事件#

              中英对照

                每当从连接的对等方接收到 PING 帧时,则会触发 'ping' 事件。

                'remoteSettings' 事件#

                中英对照

                  当从连接的对等方接收到新的 SETTINGS 帧时,则会触发 'remoteSettings' 事件。

                  
                  
                  'stream' 事件#

                  中英对照

                    创建新的 Http2Stream 时会触发 'stream' 事件。

                    
                    

                    
                    

                    'timeout' 事件#

                    中英对照

                    使用 http2session.setTimeout() 方法为此 Http2Session 设置超时时间后,如果在配置的毫秒数后 Http2Session 上没有活动,则触发 'timeout' 事件。 其监听器不需要任何参数。

                    
                    
                    http2session.alpnProtocol#

                    中英对照

                      如果 Http2Session 尚未连接到套接字,则值为 undefined,如果 Http2Session 未连接到 TLSSocket,则值为 h2c,或者将返回已连接的 TLSSocket 自己的 alpnProtocol 属性的值。

                      http2session.close([callback])#

                      中英对照

                        正常地关闭 Http2Session,允许任何现有的流自行完成并防止创建新的 Http2Stream 实例。 一旦关闭,如果没有打开的 Http2Stream 实例,则 http2session.destroy() 可能会被调用。

                        http2session.closed#

                        中英对照

                          如果此 Http2Session 实例已关闭,则为 true,否则为 false

                          http2session.connecting#

                          中英对照

                            如果此 Http2Session 实例仍在连接,则将是 true,在触发 connect 事件和/或调用 http2.connect 回调之前将设置为 false

                            http2session.destroy([error][, code])#

                            中英对照

                              立即终止 Http2Session 和相关联的 net.Sockettls.TLSSocket

                              http2session.destroyed#

                              中英对照

                                如果此 Http2Session 实例已被销毁且不能再使用,则为 true,否则为 false

                                http2session.encrypted#

                                中英对照

                                  如果 Http2Session 会话套接字尚未连接,则值为 undefined,如果 Http2SessionTLSSocket 连接,则值为 true,如果 Http2Session 连接到任何其他类型的套接字或流,则值为 false

                                  http2session.goaway([code[, lastStreamID[, opaqueData]]])#

                                  中英对照

                                    GOAWAY 帧传输到连接的对等方而不关闭 Http2Session

                                    http2session.localSettings#

                                    中英对照

                                      描述此 Http2Session 当前本地设置的无原型对象。 本地设置是本地的此 Http2Session 实例。

                                      http2session.originSet#

                                      中英对照

                                        如果 Http2Session 连接到 TLSSocket,则 originSet 属性将返回 Array 的起源,Http2Session 可能被认为是权威的。

                                        http2session.pendingSettingsAck#

                                        中英对照

                                          指示 Http2Session 当前是否正在等待已发送的 SETTINGS 帧的确认。 调用 http2session.settings() 方法后会是 true。 一旦所有发送的 SETTINGS 帧都被确认,将是 false

                                          http2session.ping([payload, ]callback)#

                                          中英对照

                                            向连接的 HTTP/2 对等方发送 PING 帧。 必须提供 callback 函数。 如果发送了 PING,则该方法将返回 true,否则返回 false

                                            
                                            

                                            http2session.ref()#

                                            中英对照

                                            在此 Http2Session 实例的底层 net.Socket 上调用 ref()

                                            http2session.remoteSettings#

                                            中英对照

                                              描述此 Http2Session 当前远程设置的无原型对象。 远程设置由连接的 HTTP/2 对等方设置。

                                              http2session.setLocalWindowSize(windowSize)#

                                              中英对照

                                                设置本地端点的窗口大小。 windowSize 是要设置的总窗口大小,而不是增量。

                                                
                                                
                                                http2session.setTimeout(msecs, callback)#

                                                中英对照

                                                  用于设置 msecs 毫秒后 Http2Session 上没有活动时调用的回调函数。 给定的 callback 已注册为 'timeout' 事件的监听器。

                                                  http2session.socket#

                                                  中英对照

                                                    返回 Proxy 对象,它充当 net.Socket(或 tls.TLSSocket),但将可用方法限制为可安全使用 HTTP/2 的方法。

                                                    http2session.state#

                                                    中英对照

                                                    提供有关 Http2Session 当前状态的其他信息。

                                                      http2session.settings([settings][, callback])#

                                                      中英对照

                                                        更新此 Http2Session 的当前本地设置并向连接的 HTTP/2 对等方发送新的 SETTINGS 帧。

                                                        http2session.type#

                                                        中英对照

                                                          如果此 Http2Session 实例是服务器,则 http2session.type 将等于 http2.constants.NGHTTP2_SESSION_SERVER,如果该实例是客户端,则 http2.constants.NGHTTP2_SESSION_CLIENT 将等于。

                                                          http2session.unref()#

                                                          中英对照

                                                          在此 Http2Session 实例的底层 net.Socket 上调用 unref()

                                                          ServerHttp2Session#

                                                          serverhttp2session.altsvc(alt, originOrStream)#

                                                          中英对照

                                                            向连接的客户端提交 ALTSVC 帧(由 RFC 7838 定义)。

                                                            
                                                            

                                                            指定备选服务器#

                                                            中英对照

                                                            alt 参数的格式由 RFC 7838 严格定义为 ASCII 字符串,其中包含与特定主机和端口相关联的"替代"协议的逗号分隔列表。

                                                            serverhttp2session.origin(...origins)#

                                                            中英对照

                                                              向连接的客户端提交 ORIGIN 帧(由 RFC 8336 定义),以通告服务器能够为其提供权威响应的源集。

                                                              
                                                              

                                                              
                                                              

                                                              ClientHttp2Session#

                                                              'altsvc' 事件#

                                                              中英对照

                                                                每当客户端接收到 ALTSVC 帧时,则会触发 'altsvc' 事件。 事件使用 ALTSVC 值、来源和流 ID 触发。 如果在 ALTSVC 帧中没有提供 origin,则 origin 将是空字符串。

                                                                
                                                                
                                                                'origin' 事件#

                                                                中英对照

                                                                  每当客户端接收到 ORIGIN 帧时,则会触发 'origin' 事件。 该事件使用 origin 字符串的数组触发。 http2session.originSet 将被更新以包含接收到的来源。

                                                                  
                                                                  

                                                                  clienthttp2session.request(headers[, options])#

                                                                  中英对照

                                                                    仅对于 HTTP/2 客户端 Http2Session 实例,http2session.request() 创建并返回 Http2Stream 实例,该实例可用于向连接的服务器发送 HTTP/2 请求。

                                                                    
                                                                    

                                                                      Http2Stream#

                                                                      中英对照

                                                                        Http2Stream 类的每个实例代表一个通过 Http2Session 实例的双向 HTTP/2 通信流。 任何单个 Http2Session 在其生命周期中最多可能有 231-1 个 Http2Stream 实例。

                                                                        
                                                                        
                                                                        Http2Stream 的生命周期#
                                                                        创建#

                                                                        中英对照

                                                                        在服务器端,ServerHttp2Stream 的实例是在以下任一情况下创建的:

                                                                          销毁#

                                                                          中英对照

                                                                          所有 Http2Stream 实例都在以下情况下被销毁:

                                                                            'aborted' 事件#

                                                                            中英对照

                                                                            每当 Http2Stream 实例在通信中途异常中止时,就会触发 'aborted' 事件。 其监听器不需要任何参数。

                                                                            'close' 事件#

                                                                            中英对照

                                                                            'close' 事件在 Http2Stream 被销毁时触发。 一旦触发此事件,则 Http2Stream 实例将不再可用。

                                                                            'error' 事件#

                                                                            中英对照

                                                                              'error' 事件在处理 Http2Stream 期间发生错误时触发。

                                                                              'frameError' 事件#

                                                                              中英对照

                                                                                当尝试发送帧时发生错误时会触发 'frameError' 事件。 当调用时,句柄函数将接收标识帧类型的整数参数和标识错误代码的整数参数。 Http2Stream 实例将在 'frameError' 事件触发后立即销毁。

                                                                                'ready' 事件#

                                                                                中英对照

                                                                                'ready' 事件在 Http2Stream 已打开、已分配 id 且可以使用时触发。 监听器不需要任何参数。

                                                                                'timeout' 事件#

                                                                                中英对照

                                                                                在使用 http2stream.setTimeout() 设置的毫秒数内没有收到此 Http2Stream 的活动后,则将触发 'timeout' 事件。 其监听器不需要任何参数。

                                                                                'trailers' 事件#

                                                                                中英对照

                                                                                  当接收到与尾随标头字段关联的标头块时,则会触发 'trailers' 事件。 监听器回调传入 HTTP/2 标头对象和与标头关联的标志。

                                                                                  
                                                                                  
                                                                                  'wantTrailers' 事件#

                                                                                  中英对照

                                                                                  'wantTrailers' 事件在 Http2Stream 已将要在帧上发送的最后 DATA 帧排队并且 Http2Stream 准备好发送尾随标头时触发。 在发起请求或响应时,必须设置 waitForTrailers 选项才能触发此事件。

                                                                                  http2stream.aborted#

                                                                                  中英对照

                                                                                    如果 Http2Stream 实例异常中止,则设置为 true。 当设置时,则 'aborted' 事件将被触发。

                                                                                    http2stream.bufferSize#

                                                                                    中英对照

                                                                                      此属性显示当前缓冲要写入的字符数。 详见 net.Socket.bufferSize

                                                                                      http2stream.close(code[, callback])#

                                                                                      中英对照

                                                                                        通过向连接的 HTTP/2 对等体发送 RST_STREAM 帧来关闭 Http2Stream 实例。

                                                                                        http2stream.closed#

                                                                                        中英对照

                                                                                          如果 Http2Stream 实例已关闭,则设置为 true

                                                                                          http2stream.destroyed#

                                                                                          中英对照

                                                                                            如果 Http2Stream 实例已被销毁且不再可用,则设置为 true

                                                                                            http2stream.endAfterHeaders#

                                                                                            中英对照

                                                                                              如果在接收到的请求或响应 HEADERS 帧中设置了 END_STREAM 标志,则设置 true,表示不应接收额外的数据并且 Http2Stream 的可读端将被关闭。

                                                                                              http2stream.id#

                                                                                              中英对照

                                                                                                Http2Stream 实例的数字流标识符 如果尚未分配流标识符,则设置为 undefined

                                                                                                http2stream.pending#

                                                                                                中英对照

                                                                                                  如果尚未为 Http2Stream 实例分配数字流标识符,则设置为 true

                                                                                                  http2stream.priority(options)#

                                                                                                  中英对照

                                                                                                    更新此 Http2Stream 实例的优先级。

                                                                                                    http2stream.rstCode#

                                                                                                    中英对照

                                                                                                      设置为 RST_STREAM 错误代码在从连接的对等方接收到 RST_STREAM 帧、调用 http2stream.close()http2stream.destroy() 后销毁 Http2Stream 时报告。 如果 Http2Stream 尚未关闭,则为 undefined

                                                                                                      http2stream.sentHeaders#

                                                                                                      中英对照

                                                                                                        包含为此 Http2Stream 发送的出站标头的对象。

                                                                                                        http2stream.sentInfoHeaders#

                                                                                                        中英对照

                                                                                                          包含为此 Http2Stream 发送的出站信息(附加)标头的对象数组。

                                                                                                          http2stream.sentTrailers#

                                                                                                          中英对照

                                                                                                            包含为此 HttpStream 发送的出站尾随标头的对象。

                                                                                                            http2stream.session#

                                                                                                            中英对照

                                                                                                              对拥有此 Http2StreamHttp2Session 实例的引用。 在 Http2Stream 实例销毁后,值为 undefined

                                                                                                              http2stream.setTimeout(msecs, callback)#

                                                                                                              中英对照

                                                                                                                
                                                                                                                
                                                                                                                http2stream.state#

                                                                                                                中英对照

                                                                                                                提供有关 Http2Stream 当前状态的其他信息。

                                                                                                                  http2stream.sendTrailers(headers)#

                                                                                                                  中英对照

                                                                                                                    向连接的 HTTP/2 对等端发送尾随的 HEADERS 帧。 此方法将导致 Http2Stream 立即关闭,并且只能在 'wantTrailers' 事件触发后调用。 当发送请求或发送响应时,必须设置 options.waitForTrailers 选项,以便在最后的 DATA 帧之后保持 Http2Stream 打开,以便可以发送尾随标头。

                                                                                                                    
                                                                                                                    

                                                                                                                    ClientHttp2Stream#

                                                                                                                    中英对照

                                                                                                                      ClientHttp2Stream 类是 Http2Stream 的扩展,专门用于 HTTP/2 客户端。 客户端上的 Http2Stream 实例提供仅与客户端相关的事件,例如 'response''push'

                                                                                                                      'continue' 事件#

                                                                                                                      中英对照

                                                                                                                      当服务器发送 100 Continue 状态时触发,通常是因为请求包含 Expect: 100-continue。 这是客户端应该发送请求正文的指令。

                                                                                                                      'headers' 事件#

                                                                                                                      中英对照

                                                                                                                      当接收到流的附加标头块时,例如接收到 1xx 信息标头块时,则会触发 'headers' 事件。 监听器回调传入 HTTP/2 标头对象和与标头关联的标志。

                                                                                                                      
                                                                                                                      
                                                                                                                      'push' 事件#

                                                                                                                      中英对照

                                                                                                                      当接收到服务器推送流的响应头时,则会触发 'push' 事件。 监听器回调传入 HTTP/2 标头对象和与标头关联的标志。

                                                                                                                      
                                                                                                                      
                                                                                                                      'response' 事件#

                                                                                                                      中英对照

                                                                                                                      当从连接的 HTTP/2 服务器收到此流的响应 HEADERS 帧时,则将触发 'response' 事件。 监听器使用两个参数调用:包含接收到的 HTTP/2 标头对象Object,以及与标头关联的标志。

                                                                                                                      
                                                                                                                      

                                                                                                                      ServerHttp2Stream#

                                                                                                                      中英对照

                                                                                                                        ServerHttp2Stream 类是 Http2Stream 的扩展,专门用于 HTTP/2 服务器。 服务器上的 Http2Stream 实例提供了仅与服务器相关的其他方法,例如 http2stream.pushStream()http2stream.respond()

                                                                                                                        http2stream.additionalHeaders(headers)#

                                                                                                                        中英对照

                                                                                                                          向连接的 HTTP/2 对等方发送额外的信息性 HEADERS 帧。

                                                                                                                          http2stream.headersSent#

                                                                                                                          中英对照

                                                                                                                            如果标头被发送则为 true,否则为 false(只读)。

                                                                                                                            http2stream.pushAllowed#

                                                                                                                            中英对照

                                                                                                                              只读属性映射到远程客户端最近的 SETTINGS 帧的 SETTINGS_ENABLE_PUSH 标志。 如果远程节点接受推送流,则为 true,否则为 false。 同一个 Http2Session 中的每个 Http2Stream 的设置都是相同的。

                                                                                                                              http2stream.pushStream(headers[, options], callback)#

                                                                                                                              中英对照

                                                                                                                                启动推送流。 使用为作为第二个参数传入的推送流创建的新 Http2Stream 实例或作为第一个参数传入的 Error 调用回调。

                                                                                                                                
                                                                                                                                

                                                                                                                                http2stream.respond([headers[, options]])#

                                                                                                                                中英对照

                                                                                                                                  
                                                                                                                                  

                                                                                                                                  当设置了 options.waitForTrailers 选项时,'wantTrailers' 事件将在将要发送的最后一块有效负载数据排队后立即发出。 然后可以使用 http2stream.sendTrailers() 方法将尾随标头字段发送到对等方。

                                                                                                                                  
                                                                                                                                  
                                                                                                                                  http2stream.respondWithFD(fd[, headers[, options]])#

                                                                                                                                  中英对照

                                                                                                                                    启动响应,其数据从给定的文件描述符中读取。 不对给定的文件描述符进行验证。 如果在尝试使用文件描述符读取数据时发生错误,则 Http2Stream 将使用标准 INTERNAL_ERROR 代码使用 RST_STREAM 帧关闭。

                                                                                                                                    
                                                                                                                                    

                                                                                                                                    
                                                                                                                                    
                                                                                                                                    http2stream.respondWithFile(path[, headers[, options]])#

                                                                                                                                    中英对照

                                                                                                                                      发送普通文件作为响应。 path 必须指定常规文件,否则将在 Http2Stream 对象上触发 'error' 事件。

                                                                                                                                      
                                                                                                                                      

                                                                                                                                      
                                                                                                                                      

                                                                                                                                      
                                                                                                                                      

                                                                                                                                      Http2Server#

                                                                                                                                      中英对照

                                                                                                                                        Http2Server 的实例是使用 http2.createServer() 函数创建的。 Http2Server 类不是由 http2 模块直接导出的。

                                                                                                                                        'checkContinue' 事件#

                                                                                                                                        中英对照

                                                                                                                                          如果注册了 'request' 监听器或为 http2.createServer() 提供了回调函数,则每次收到带有 HTTP Expect: 100-continue 的请求时都会触发 'checkContinue' 事件。 如果没有监听此事件,则服务器会自动响应状态为 100 Continue

                                                                                                                                          'connection' 事件#

                                                                                                                                          中英对照

                                                                                                                                            当建立新的 TCP 流时会触发此事件。 socket 通常是 net.Socket 类型的对象。 通常用户不会想访问这个事件。

                                                                                                                                            'request' 事件#

                                                                                                                                            中英对照

                                                                                                                                              每次有请求时触发。 每个会话可能有多个请求。 请参阅兼容性 API

                                                                                                                                              'session' 事件#

                                                                                                                                              中英对照

                                                                                                                                              Http2Server 创建新的 Http2Session 时,则会触发 'session' 事件。

                                                                                                                                              'sessionError' 事件#

                                                                                                                                              中英对照

                                                                                                                                              当与 Http2Server 关联的 Http2Session 对象触发 'error' 事件时,则将触发 'sessionError' 事件。

                                                                                                                                              'stream' 事件#

                                                                                                                                              中英对照

                                                                                                                                                当与服务器关联的 Http2Session 触发 'stream' 事件时,则将触发 'stream' 事件。

                                                                                                                                                
                                                                                                                                                
                                                                                                                                                'timeout' 事件#

                                                                                                                                                中英对照

                                                                                                                                                当服务器上在使用 http2server.setTimeout() 设置的给定毫秒数内没有活动时,则会触发 'timeout' 事件。 默认值: 0(无超时)

                                                                                                                                                server.close([callback])#

                                                                                                                                                中英对照

                                                                                                                                                  停止服务器建立新会话。 由于 HTTP/2 会话的持久性,这不会阻止创建新的请求流。 要正常地关闭服务器,则在所有活动会话上调用 http2session.close()

                                                                                                                                                  server.setTimeout([msecs][, callback])#

                                                                                                                                                  中英对照

                                                                                                                                                    用于设置 http2 服务器请求的超时值,设置 msecs 毫秒后 Http2Server 上没有活动时调用的回调函数。

                                                                                                                                                    server.timeout#

                                                                                                                                                    中英对照

                                                                                                                                                      假定套接字超时之前不活动的毫秒数。

                                                                                                                                                      server.updateSettings([settings])#

                                                                                                                                                      中英对照

                                                                                                                                                        用于使用提供的设置更新服务器。

                                                                                                                                                        Http2SecureServer#

                                                                                                                                                        中英对照

                                                                                                                                                          Http2SecureServer 的实例是使用 http2.createSecureServer() 函数创建的。 Http2SecureServer 类不是由 http2 模块直接导出的。

                                                                                                                                                          'checkContinue' 事件#

                                                                                                                                                          中英对照

                                                                                                                                                            如果注册了 'request' 监听器或为 http2.createSecureServer() 提供了回调函数,则每次收到带有 HTTP Expect: 100-continue 的请求时都会触发 'checkContinue' 事件。 如果没有监听此事件,则服务器会自动响应状态为 100 Continue

                                                                                                                                                            'connection' 事件#

                                                                                                                                                            中英对照

                                                                                                                                                              此事件在建立新的 TCP 流时触发,在 TLS 握手开始之前。 socket 通常是 net.Socket 类型的对象。 通常用户不会想访问这个事件。

                                                                                                                                                              'request' 事件#

                                                                                                                                                              中英对照

                                                                                                                                                                每次有请求时触发。 每个会话可能有多个请求。 请参阅兼容性 API

                                                                                                                                                                'session' 事件#

                                                                                                                                                                中英对照

                                                                                                                                                                Http2SecureServer 创建新的 Http2Session 时,则会触发 'session' 事件。

                                                                                                                                                                'sessionError' 事件#

                                                                                                                                                                中英对照

                                                                                                                                                                当与 Http2SecureServer 关联的 Http2Session 对象触发 'error' 事件时,则将触发 'sessionError' 事件。

                                                                                                                                                                'stream' 事件#

                                                                                                                                                                中英对照

                                                                                                                                                                  当与服务器关联的 Http2Session 触发 'stream' 事件时,则将触发 'stream' 事件。

                                                                                                                                                                  
                                                                                                                                                                  
                                                                                                                                                                  'timeout' 事件#

                                                                                                                                                                  中英对照

                                                                                                                                                                  当服务器上在使用 http2secureServer.setTimeout() 设置的给定毫秒数内没有活动时,则会触发 'timeout' 事件。 默认值: 2 分钟。

                                                                                                                                                                  'unknownProtocol' 事件#

                                                                                                                                                                  中英对照

                                                                                                                                                                  当连接的客户端无法协商允许的协议(即 HTTP/2 或 HTTP/1.1)时,则会触发 'unknownProtocol' 事件。 事件句柄接收套接字进行处理。 如果没有为该事件注册监听器,则连接将终止。 可以使用传给 http2.createSecureServer()'unknownProtocolTimeout' 选项指定超时。 请参阅兼容性 API

                                                                                                                                                                  server.close([callback])#

                                                                                                                                                                  中英对照

                                                                                                                                                                    停止服务器建立新会话。 由于 HTTP/2 会话的持久性,这不会阻止创建新的请求流。 要正常地关闭服务器,则在所有活动会话上调用 http2session.close()

                                                                                                                                                                    server.setTimeout([msecs][, callback])#

                                                                                                                                                                    中英对照

                                                                                                                                                                      用于设置 http2 安全服务器请求的超时值,设置 msecs 毫秒后 Http2SecureServer 上没有活动时调用的回调函数。

                                                                                                                                                                      server.timeout#

                                                                                                                                                                      中英对照

                                                                                                                                                                        假定套接字超时之前不活动的毫秒数。

                                                                                                                                                                        server.updateSettings([settings])#

                                                                                                                                                                        中英对照

                                                                                                                                                                          用于使用提供的设置更新服务器。

                                                                                                                                                                          http2.createServer(options[, onRequestHandler])#

                                                                                                                                                                          中英对照

                                                                                                                                                                            返回创建和管理 Http2Session 实例的 net.Server 实例。

                                                                                                                                                                            
                                                                                                                                                                            

                                                                                                                                                                            http2.createSecureServer(options[, onRequestHandler])#

                                                                                                                                                                            中英对照

                                                                                                                                                                              返回创建和管理 Http2Session 实例的 tls.Server 实例。

                                                                                                                                                                              
                                                                                                                                                                              

                                                                                                                                                                              http2.connect(authority[, options][, listener])#

                                                                                                                                                                              中英对照

                                                                                                                                                                                返回 ClientHttp2Session 实例。

                                                                                                                                                                                
                                                                                                                                                                                

                                                                                                                                                                                http2.constants#

                                                                                                                                                                                RST_STREAM 与 GOAWAY 的错误码#

                                                                                                                                                                                中英对照

                                                                                                                                                                                当服务器上在使用 http2server.setTimeout() 设置的给定毫秒数内没有活动时,则会触发 'timeout' 事件。

                                                                                                                                                                                http2.getDefaultSettings()#

                                                                                                                                                                                中英对照

                                                                                                                                                                                  返回包含 Http2Session 实例默认设置的对象。 此方法每次调用时都会返回新的对象实例,因此可以安全地修改返回的实例以供使用。

                                                                                                                                                                                  http2.getPackedSettings([settings])#

                                                                                                                                                                                  中英对照

                                                                                                                                                                                    返回 Buffer 实例,其中包含 HTTP/2 规范中指定的给定 HTTP/2 设置的序列化表示。 这旨在与 HTTP2-Settings 标头字段一起使用。

                                                                                                                                                                                    
                                                                                                                                                                                    

                                                                                                                                                                                    http2.getUnpackedSettings(buf)#

                                                                                                                                                                                    中英对照

                                                                                                                                                                                      返回 HTTP/2 设置对象,其中包含 http2.getPackedSettings() 生成的给定 Buffer 的反序列化设置。

                                                                                                                                                                                      http2.sensitiveHeaders#

                                                                                                                                                                                      中英对照

                                                                                                                                                                                        可以将此符号设置为 HTTP/2 标头对象上的属性,并带有一个数组值,以提供被视为敏感的标头列表。 有关详细信息,请参阅敏感标头

                                                                                                                                                                                        标头对象#

                                                                                                                                                                                        中英对照

                                                                                                                                                                                        标头在 JavaScript 对象上表示为自身的属性。 属性键将被序列化为小写。 属性值应该是字符串(如果不是,它们将被强制转换为字符串)或 Array 个字符串(以便为每个标头字段发送一个以上的值)。

                                                                                                                                                                                        
                                                                                                                                                                                        

                                                                                                                                                                                          
                                                                                                                                                                                          
                                                                                                                                                                                          敏感的标头#

                                                                                                                                                                                          中英对照

                                                                                                                                                                                          HTTP2 标头可以标记为敏感,这意味着 HTTP/2 标头压缩算法永远不会索引它们。 这对于低熵的标头值是有意义的,并且可能被认为对攻击者有价值,例如 CookieAuthorization。 要实现这一点,请将标头名称作为数组添加到 [http2.sensitiveHeaders] 属性中:

                                                                                                                                                                                          
                                                                                                                                                                                          

                                                                                                                                                                                          设置对象#

                                                                                                                                                                                          中英对照

                                                                                                                                                                                          http2.getDefaultSettings()http2.getPackedSettings()http2.createServer()http2.createSecureServer()http2session.settings()http2session.localSettingshttp2session.remoteSettings API 返回或接收一个对象作为输入,该对象定义了 Http2Session 对象的配置设置。 这些对象是包含以下属性的普通 JavaScript 对象。

                                                                                                                                                                                            错误处理#

                                                                                                                                                                                            中英对照

                                                                                                                                                                                            使用 http2 模块时可能会出现几种类型的错误情况:

                                                                                                                                                                                            标头键值中的无效字符#

                                                                                                                                                                                            中英对照

                                                                                                                                                                                            HTTP/2 实现比 HTTP/1 实现更严格地处理 HTTP 标头名称和值中的无效字符。

                                                                                                                                                                                            推送流到客户端#

                                                                                                                                                                                            中英对照

                                                                                                                                                                                            要在客户端接收推送流,则在 ClientHttp2Session 上为 'stream' 事件设置监听器:

                                                                                                                                                                                            
                                                                                                                                                                                            

                                                                                                                                                                                            支持 CONNECT 方法#

                                                                                                                                                                                            中英对照

                                                                                                                                                                                            CONNECT 方法用于允许 HTTP/2 服务器用作 TCP/IP 连接的代理。

                                                                                                                                                                                            
                                                                                                                                                                                            

                                                                                                                                                                                            
                                                                                                                                                                                            

                                                                                                                                                                                            
                                                                                                                                                                                            

                                                                                                                                                                                            扩展的 CONNECT 协议#

                                                                                                                                                                                            中英对照

                                                                                                                                                                                            RFC 8441 定义了 HTTP/2 的“扩展连接协议”扩展,可用于引导使用 Http2Stream 使用 CONNECT 方法作为其他通信协议(例如 WebSockets)的隧道。

                                                                                                                                                                                            
                                                                                                                                                                                            

                                                                                                                                                                                            
                                                                                                                                                                                            

                                                                                                                                                                                            兼容的 API#

                                                                                                                                                                                            中英对照

                                                                                                                                                                                            兼容性 API 的目标是在使用 HTTP/2 时提供与 HTTP/1 类似的开发者体验,从而可以开发同时支持 HTTP/1 和 HTTP/2 的应用程序。 此 API 仅针对 HTTP/1公共 API。 然而,许多模块使用内部方法或状态,而那些不受支持,因为它是完全不同的实现。

                                                                                                                                                                                            
                                                                                                                                                                                            

                                                                                                                                                                                            ALPN 协商#

                                                                                                                                                                                            中英对照

                                                                                                                                                                                            ALPN 协商允许在同一个套接字上同时支持 HTTPS 和 HTTP/2。 reqres 对象可以是 HTTP/1 或 HTTP/2,并且应用程序必须将自己限制在 HTTP/1 的公共 API,并检测是否可以使用更多HTTP/2 的高级特性。

                                                                                                                                                                                            
                                                                                                                                                                                            

                                                                                                                                                                                            http2.Http2ServerRequest#

                                                                                                                                                                                            中英对照

                                                                                                                                                                                              Http2ServerRequest 对象由 http2.Serverhttp2.SecureServer 创建并作为第一个参数传给 'request' 事件。 它可用于访问请求状态、标头和数据。

                                                                                                                                                                                              'aborted' 事件#

                                                                                                                                                                                              中英对照

                                                                                                                                                                                              每当 Http2ServerRequest 实例在通信中途异常中止时,就会触发 'aborted' 事件。

                                                                                                                                                                                              'close' 事件#

                                                                                                                                                                                              中英对照

                                                                                                                                                                                              表示底层的 Http2Stream 已关闭。 就像 'end' 一样,此事件每个响应只触发一次。

                                                                                                                                                                                              request.aborted#

                                                                                                                                                                                              中英对照

                                                                                                                                                                                                如果请求已中止,则 request.aborted 属性将为 true

                                                                                                                                                                                                request.authority#

                                                                                                                                                                                                中英对照

                                                                                                                                                                                                  请求权限伪头域。 它也可以通过 req.headers[':authority'] 访问。

                                                                                                                                                                                                  request.complete#

                                                                                                                                                                                                  中英对照

                                                                                                                                                                                                    如果请求已完成、中止或销毁,则 request.complete 属性将为 true

                                                                                                                                                                                                    request.connection#

                                                                                                                                                                                                    中英对照

                                                                                                                                                                                                      参见 request.socket

                                                                                                                                                                                                      request.destroy([error])#

                                                                                                                                                                                                      中英对照

                                                                                                                                                                                                        在收到 Http2ServerRequestHttp2Stream 上调用 destroy()。 如果提供了 error,则会触发 'error' 事件,并将 error 作为参数传给该事件的任何监听器。

                                                                                                                                                                                                        request.headers#

                                                                                                                                                                                                        中英对照

                                                                                                                                                                                                          请求/响应头对象。

                                                                                                                                                                                                          
                                                                                                                                                                                                          

                                                                                                                                                                                                          
                                                                                                                                                                                                          
                                                                                                                                                                                                          request.httpVersion#

                                                                                                                                                                                                          中英对照

                                                                                                                                                                                                            在服务器请求的情况下,客户端发送的 HTTP 版本。 在客户端响应的情况下,连接到服务器的 HTTP 版本。 返回 '2.0'

                                                                                                                                                                                                            request.method#

                                                                                                                                                                                                            中英对照

                                                                                                                                                                                                              请求方法作为字符串。 只读。 示例:'GET''DELETE'

                                                                                                                                                                                                              request.rawHeaders#

                                                                                                                                                                                                              中英对照

                                                                                                                                                                                                                原始请求/响应头完全按照收到的方式列出。

                                                                                                                                                                                                                
                                                                                                                                                                                                                
                                                                                                                                                                                                                request.rawTrailers#

                                                                                                                                                                                                                中英对照

                                                                                                                                                                                                                  原始请求/响应尾标的键和值与收到的完全一样。 仅在 'end' 事件中填充。

                                                                                                                                                                                                                  request.scheme#

                                                                                                                                                                                                                  中英对照

                                                                                                                                                                                                                    请求协议伪标头域,指示目标 URL 的协议部分。

                                                                                                                                                                                                                    request.setTimeout(msecs, callback)#

                                                                                                                                                                                                                    中英对照

                                                                                                                                                                                                                      Http2Stream 的超时值设置为 msecs。 如果提供了回调,则将其添加为响应对象上 'timeout' 事件的监听器。

                                                                                                                                                                                                                      request.socket#

                                                                                                                                                                                                                      中英对照

                                                                                                                                                                                                                        返回 Proxy 对象,该对象充当 net.Socket(或 tls.TLSSocket),但应用了基于 HTTP/2 逻辑的获取器、设置器、以及方法。

                                                                                                                                                                                                                        request.stream#

                                                                                                                                                                                                                        中英对照

                                                                                                                                                                                                                          支持请求的 Http2Stream 对象。

                                                                                                                                                                                                                          request.trailers#

                                                                                                                                                                                                                          中英对照

                                                                                                                                                                                                                            请求/响应尾标对象。 仅在 'end' 事件中填充。

                                                                                                                                                                                                                            request.url#

                                                                                                                                                                                                                            中英对照

                                                                                                                                                                                                                              请求的网址字符串。 这仅包含实际 HTTP 请求中存在的网址。 如果请求是:

                                                                                                                                                                                                                              
                                                                                                                                                                                                                              

                                                                                                                                                                                                                              
                                                                                                                                                                                                                              

                                                                                                                                                                                                                              
                                                                                                                                                                                                                              

                                                                                                                                                                                                                              http2.Http2ServerResponse#

                                                                                                                                                                                                                              中英对照

                                                                                                                                                                                                                                此对象由 HTTP 服务器内部创建,而不是由用户创建。 它作为第二个参数传给 'request' 事件。

                                                                                                                                                                                                                                'close' 事件#

                                                                                                                                                                                                                                中英对照

                                                                                                                                                                                                                                表示底层的 Http2Streamresponse.end() 被调用或能够刷新之前终止。

                                                                                                                                                                                                                                'finish' 事件#

                                                                                                                                                                                                                                中英对照

                                                                                                                                                                                                                                发送响应时触发。 更具体地说,当响应标头和正文的最后一段已移交给 HTTP/2 多路复用以通过网络传输时,则将触发此事件。 这并不意味着客户端已收到任何东西。

                                                                                                                                                                                                                                response.addTrailers(headers)#

                                                                                                                                                                                                                                中英对照

                                                                                                                                                                                                                                  此方法向响应添加 HTTP 尾随标头(标头,但位于消息末尾)。

                                                                                                                                                                                                                                  response.connection#

                                                                                                                                                                                                                                  中英对照

                                                                                                                                                                                                                                    参见 response.socket

                                                                                                                                                                                                                                    response.createPushResponse(headers, callback)#

                                                                                                                                                                                                                                    中英对照

                                                                                                                                                                                                                                      使用给定的标头调用 http2stream.pushStream(),如果成功,则将给定的 Http2Stream 包装在新创建的 Http2ServerResponse 上作为回调参数。 当 Http2ServerRequest 关闭时,回调被调用,错误为 ERR_HTTP2_INVALID_STREAM

                                                                                                                                                                                                                                      response.end([data[, encoding]][, callback])#

                                                                                                                                                                                                                                      中英对照

                                                                                                                                                                                                                                        此方法向服务器发出信号,表明所有响应头和正文都已发送;该服务器应认为此消息已完成。 response.end() 方法必须在每个响应上调用。

                                                                                                                                                                                                                                        response.finished#

                                                                                                                                                                                                                                        中英对照

                                                                                                                                                                                                                                          指示响应是否已完成的布尔值。 从 false 开始。 在 response.end() 执行后,值为 true

                                                                                                                                                                                                                                          response.getHeader(name)#

                                                                                                                                                                                                                                          中英对照

                                                                                                                                                                                                                                            读出已排队但未发送到客户端的标头。 该名称不区分大小写。

                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                            response.getHeaderNames()#

                                                                                                                                                                                                                                            中英对照

                                                                                                                                                                                                                                              返回包含当前传出标头的唯一名称的数组。 所有标头名称均为小写。

                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                              response.getHeaders()#

                                                                                                                                                                                                                                              中英对照

                                                                                                                                                                                                                                                返回当前传出标头的浅拷贝。 由于使用了浅拷贝,因此无需额外调用各种与标头相关的 http 模块方法即可更改数组值。 返回对象的键是标头名称,值是相应的标头值。 所有标头名称均为小写。

                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                response.hasHeader(name)#

                                                                                                                                                                                                                                                中英对照

                                                                                                                                                                                                                                                  如果 name 标识的标头当前设置在传出标头中,则返回 true。 标头名称匹配不区分大小写。

                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                  response.headersSent#

                                                                                                                                                                                                                                                  中英对照

                                                                                                                                                                                                                                                    如果标头被发送则为 true,否则为 false(只读)。

                                                                                                                                                                                                                                                    response.removeHeader(name)#

                                                                                                                                                                                                                                                    中英对照

                                                                                                                                                                                                                                                      删除已排队等待隐式发送的标头。

                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                      response.sendDate#

                                                                                                                                                                                                                                                      中英对照

                                                                                                                                                                                                                                                        如果为真,则 Date 标头将自动生成并在响应中发送,如果它尚未出现在标头中。 默认为真。

                                                                                                                                                                                                                                                        response.setHeader(name, value)#

                                                                                                                                                                                                                                                        中英对照

                                                                                                                                                                                                                                                          为隐式标头设置单个标头值。 如果该标头已经存在于待发送的标头中,则其值将被替换。 在此处使用字符串数组发送具有相同名称的多个标头。

                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          response.setTimeout(msecs[, callback])#

                                                                                                                                                                                                                                                          中英对照

                                                                                                                                                                                                                                                            Http2Stream 的超时值设置为 msecs。 如果提供了回调,则将其添加为响应对象上 'timeout' 事件的监听器。

                                                                                                                                                                                                                                                            response.socket#

                                                                                                                                                                                                                                                            中英对照

                                                                                                                                                                                                                                                              返回 Proxy 对象,该对象充当 net.Socket(或 tls.TLSSocket),但应用了基于 HTTP/2 逻辑的获取器、设置器、以及方法。

                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                              response.statusCode#

                                                                                                                                                                                                                                                              中英对照

                                                                                                                                                                                                                                                                使用隐式标头(不显式调用 response.writeHead())时,此属性控制在标头刷新时将发送到客户端的状态码。

                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                                                response.statusMessage#

                                                                                                                                                                                                                                                                中英对照

                                                                                                                                                                                                                                                                  HTTP/2(RFC 7540 8.1.2.4)不支持状态消息。 它返回空字符串。

                                                                                                                                                                                                                                                                  response.stream#

                                                                                                                                                                                                                                                                  中英对照

                                                                                                                                                                                                                                                                    支持响应的 Http2Stream 对象。

                                                                                                                                                                                                                                                                    response.writableEnded#

                                                                                                                                                                                                                                                                    中英对照

                                                                                                                                                                                                                                                                      在调用 response.end() 之后是 true。 此属性不指示数据是否已刷新,为此则使用 writable.writableFinished 代替。

                                                                                                                                                                                                                                                                      response.write(chunk[, encoding][, callback])#

                                                                                                                                                                                                                                                                      中英对照

                                                                                                                                                                                                                                                                        如果此方法被调用且 response.writeHead() 还没被调用,则会切换到隐式的标头模式并刷新隐式的标头。

                                                                                                                                                                                                                                                                        response.writeContinue()#

                                                                                                                                                                                                                                                                        中英对照

                                                                                                                                                                                                                                                                        向客户端发送状态 100 Continue,表示应该发送请求体。 查看 Http2ServerHttp2SecureServer 上的 'checkContinue' 事件。

                                                                                                                                                                                                                                                                        response.writeHead(statusCode[, statusMessage][, headers])#

                                                                                                                                                                                                                                                                        中英对照

                                                                                                                                                                                                                                                                          向请求发送响应头。 状态码是 3 位的 HTTP 状态码,如 404。 最后一个参数 headers 是响应头。

                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                                          采集 HTTP/2 性能指标#

                                                                                                                                                                                                                                                                          中英对照

                                                                                                                                                                                                                                                                          性能观察 API 可用于收集每个 Http2SessionHttp2Stream 实例的基本性能指标。

                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                                              返回顶部