CONNECT トンネルはどれだけ長く開いたままでいられるか?
確立されたトンネルの寿命を、HTTP 応答の再利用、中間プロキシのアイドルポリシー、宛先アプリケーション自身のセッションから切り分けます。
CONNECT は無期限に開いたトンネルを約束するものではありません。交換が成功した後も、接続は要求されたホストとポートへ継続的なバイトストリームを運びます。参加者とネットワークが開いたままにする限り、宛先の TLS セッション内で複数の交換を運ぶことができます。
プロキシの 2 つの制限は挙動が異なります。トラフィックはアイドルタイマーの失効を防げますが、絶対的な寿命制限を延長することはできません。宛先プロトコルにも発言権があります。内側の HTTP クライアントが接続を閉じることもあり、WebSocket アプリケーションがセッションを終えることもあります。プロキシはその後その宛先セッションを生かし続けることはできません。
トンネルは対象に結び付いています。トンネルのバイトが流れ始めると、その接続は無関係な宛先へ別の CONNECT を発行するための通常の HTTP リクエスト経路ではなくなります。クライアントには別の接続か、ライブラリが管理する別のトンネルが必要です。
持続的なフィードでは、クライアントが対応する生存確認と接続の仕組みを使って再接続を計画します。無音の後に閉じるなら非活動ポリシーが有用な手掛かりです。トラフィックがあるのに一定時間で閉じるなら、代わりに絶対的な制限を調べます。WebSocket フィードでは、再接続後にアプリケーション状態も復元するようにします。