HTTP2 升级协议
目录
简介
HTTP 升级协议元素表示支持 HTTP/2 协议的升级协议组件。此组件的实例必须与现有的HTTP/1.1 连接器关联。
HTTP/2 连接器使用非阻塞 I/O,仅在有数据可读写时才从线程池中利用容器线程。然而,由于 Servlet API 本质上是阻塞的,每个 HTTP/2 流在其持续期间都需要一个专用的容器线程。
使用 HTTP/2 处理的请求将具有以下额外的请求属性:
org.apache.coyote.connectionID
将返回 HTTP/2 连接 IDorg.apache.coyote.streamID
将返回 HTTP/2 流 ID
属性
通用属性
所有升级协议的实现都支持以下属性:
属性 | 描述 |
---|---|
className |
这必须是 |
标准实现
HTTP/2 升级协议实现除了上面列出的通用属性外,还支持以下属性。
属性 | 描述 |
---|---|
discardRequestsAndResponses |
一个布尔值,用于启用或禁用容器内部请求和响应处理对象的回收。如果设置为 |
initialWindowSize |
控制 Tomcat 向客户端通告的流的流量控制窗口的初始大小。如果未指定,则使用默认值 |
keepAliveTimeout |
在没有活动流的情况下,Tomcat 在关闭连接之前,在 HTTP/2 帧之间等待的时间(以毫秒为单位)。负值将被视为无限超时。如果未指定,将使用默认值 |
maxConcurrentStreamExecution |
控制任何一个连接可以从容器线程池分配线程的最大流数量。如果活动流多于可用线程,则这些流将不得不等待流变得可用。如果未指定,将使用默认值 |
maxConcurrentStreams |
控制任何一个连接允许的最大活动流数量。如果客户端尝试打开超过此限制的活动流,则该流将以 |
maxHeaderCount |
容器允许的请求中的最大头数量。包含超过指定限制的头的请求将被拒绝。小于 0 的值表示没有限制。如果未指定,则使用默认值 100。 |
maxTrailerCount |
容器允许的请求中的最大尾部头数量。包含超过指定限制的尾部头的请求将被拒绝。小于 0 的值表示没有限制。如果未指定,则使用默认值 100。 |
overheadContinuationThreshold |
当非最终 |
overheadCountFactor |
计算开销帧时应用的因子,用于确定连接是否开销过高并应关闭。开销计数从 |
overheadResetFactor |
每收到一个重置帧,开销计数(参见overheadCountFactor)将增加的量。如果未指定,将使用默认值 |
overheadDataThreshold |
当前和先前的非最终 |
overheadWindowUpdateThreshold |
当前和先前 |
readTimeout |
当接收到部分 HTTP/2 帧时,Tomcat 将等待额外数据的时间(以毫秒为单位)。负值将被视为无限超时。如果未指定,将使用默认值 |
streamReadTimeout |
当应用程序正在执行阻塞 I/O 读取并需要额外数据时,Tomcat 将等待流的额外数据帧到达的时间(以毫秒为单位)。负值将被视为无限超时。如果未指定,将使用默认值 |
streamWriteTimeout |
当应用程序正在执行阻塞 I/O 写入且流和/或连接流量控制窗口太小导致写入无法完成时,Tomcat 将等待流和/或连接的额外窗口更新帧到达的时间(以毫秒为单位)。负值将被视为无限超时。如果未指定,将使用默认值 |
useSendfile |
使用此布尔属性来启用或禁用 sendfile 功能。默认值为 如果关联连接器的 useAsyncIO 属性设置为 HTTP/2 sendfile 功能使用 MappedByteBuffer,已知这会在 Windows 上导致文件锁定。 |
writeTimeout |
当 HTTP/2 帧已部分写入时,Tomcat 将等待写入额外数据的时间(以毫秒为单位)。负值将被视为无限超时。如果未指定,将使用默认值 |
HTTP/2 升级协议还将继承其嵌套的HTTP 连接器的以下属性:
- allowedTrailerHeaders
- compressibleMimeType
- compression
- compressionMinSize
- maxCookieCount
- maxHttpHeaderSize
- maxHttpRequestHeaderSize
- maxParameterCount
- maxPartCount
- maxPartHeaderSize
- maxPostSize
- maxSavePostSize
- maxTrailerSize
- noCompressionUserAgents
- server
- serverRemoveAppProvidedValues
嵌套组件
此组件不支持任何嵌套组件。
特殊功能
此组件不支持任何特殊功能。