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 升級協定實作除了上述共用屬性之外,還支援下列屬性。
屬性 | 說明 |
---|---|
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 功能。預設值為 如果關聯的 Connector 的 useAsyncIO 屬性設為 HTTP/2 sendfile 功能使用 MappedByteBuffer,已知會在 Windows 上造成檔案鎖定。 |
writeTimeout |
當 HTTP/2 框架已部分寫入時,Tomcat 會等待寫入額外資料的毫秒數。負值將視為無限逾時。如果未指定,將使用預設值 |
HTTP/2 升級通訊協定也會繼承下列限制,來自於它所嵌套的 HTTP Connector
- allowedTrailerHeaders
- compressibleMimeType
- compression
- compressionMinSize
- maxCookieCount
- maxHttpHeaderSize
- maxHttpRequestHeaderSize
- maxParameterCount
- maxPostSize
- maxSavePostSize
- maxTrailerSize
- noCompressionUserAgents
巢狀元件
此元件不支援任何嵌套元件。
特殊功能
此元件不支援任何特殊功能。