connection単位のnegotiation、request construction、WebSocket handshake mapping、stream lifecycle、intermediary behaviorを分けて扱います。Section番号はRFC 8441を指します。
clientは同じoriginへ3本のWebSocketと通常HTTP requestを同時に使う。評価基準はtransport connectionの再利用であり、WebSocket framingやsecurity policyの変更ではない。
serverのopt-inを受信後、clientはwss://agent.example/eventsをHTTP/2上で開く。
reviewerは、extended CONNECTの成功がRFC 6455とapplication-layer checkをすべて置き換えると主張する。引き続き必要な責務を選ぶ。
deploymentはHTTP/2 hop経由でしかoriginへ到達できない。reviewerはpeerが実際にadvertiseしたbootstrapを選ぶ必要がある。
1本のHTTP/2 connectionでclientがserverへSETTINGS_ENABLE_CONNECT_PROTOCOL=1を送るが、serverからはそのsettingを受信していない。clientは自分のadvertiseをmutual opt-inと解釈し、extended CONNECT streamを開こうとする。
A2A relayはclientにextended CONNECT対応をadvertiseしています. 一方, relayからoriginへの別のHTTP/2 connectionでは対応がadvertiseされていません. relayはclientのWebSocket requestをどう扱うか判断する必要があります.
clientはws://agent.example/eventsをbootstrapするが、既存HTTP/2 connectionがTLSを使うためextended CONNECTへ:scheme=httpsを送る。
HTTP/1.1 adapterがConnection、Upgrade、Sec-WebSocket-Key、Origin、Sec-WebSocket-Version、Sec-WebSocket-Protocolをextended CONNECT requestへ複製する。
peerはWebSocket closing exchangeを完了した。implementationはexceptionではなくorderly TCP-level closeに相当するHTTP/2処理を行う。
clientはHTTP/2でforward proxyへ接続し、そのproxy経由でoriginへWebSocket connectionを作りたい。originへのtunnelはまだない。
SETTINGS_ENABLE_CONNECT_PROTOCOL=1を受信する前に、clientが:protocol=websocket付きCONNECTを送る。peerはRFC 8441非対応である。