Proksija CONNECT noilgumi pēc veiksmīga TCP savienojuma
Nosakiet CONNECT laikā aktīvo noilgumu, nevis pieņemiet, ka pabeigts TCP savienojums ir pabeidzis arī tuneļa iestatīšanu.
TCP savienojuma noilgums ir paveicis savu darbu, tiklīdz klients izveido savienojumu ar proksiju. Nākamā gaidīšana—pilnīgas CONNECT atbildes saņemšana—var būt pakļauta citam taimerim.
Iespējams, proksija vēl veido savienojumu uz augšu, apmainās ar autentifikācijas ziņojumiem vai gaida citu pakalpojumu. Tīmekļa vietnes parastā atbilde vēl nav sākusies.
| Pēdējais pabeigtais solis | Kas vēl tiek gaidīts? |
|---|---|
| TCP savienots ar proksiju | Proksijas rokasspiediens, ieskaitot CONNECT pieņemšanu |
| CONNECT pieņemts | Galamērķa TLS, ja mērķis to izmanto |
| Galamērķa pieprasījums nosūtīts | Galamērķa atbilde |
Atrodiet taimeri, kas ir aktīvs, kamēr savienotājs lasa un raksta šo rokasspiedienu. Rekvizīts ar nosaukumu “response timeout” var stāties spēkā tikai pēc maršruta izveidošanas. Ar HttpClient 5 atšķiriet ConnectionConfig un tā ligzdas noilgumu, TLS rokasspiediena konfigurāciju un atbildes noilgumu pieprasījuma līmenī. Piemērojiet attiecīgo savienojuma konfigurāciju, izmantojot pārvaldnieku, ko izmanto faktiskais klients. Vecākās Apache HttpClient paaudzes izmanto citas API, tāpēc vecāks fragments nav uzticama karte šiem pienākumiem.
Saglabājiet galīgo CONNECT noraidījumu kā proksijas atbildi. Veiksmīga atbilde, kurai seko TLS apstāšanās, ir vēl viens kļūmes posms. “TCP savienots; pirms iestatīšanas termiņa nav pilnīgas CONNECT atbildes” apraksta problēmu precīzāk nekā vispārīgs proksijas noilgums.
Kopējais termiņš var ierobežot zvanītāja gaidīšanu līdzās šiem fāžu ierobežojumiem. Kad tas beidzas, atceliet vai aizveriet darbību, izmantojot klienta atbalstīto dzīves ciklu, pirms nākamais mēģinājums patērē savienojuma jaudu.