Časové limity CONNECT cez proxy po úspešnom TCP pripojení
Určte časový limit, ktorý platí počas CONNECT, namiesto toho, aby ste predpokladali, že dokončené TCP pripojenie dokončilo aj nastavenie tunela.
Časový limit TCP pripojenia splnil svoju úlohu, keď sa klient pripojil k proxy. Nasledujúce čakanie—prijatie úplnej odpovede CONNECT—môže riadiť iný časovač.
Proxy sa možno stále pripája k nadradenému serveru, vymieňa autentifikačné správy alebo čaká na inú službu. Bežná odpoveď webu sa ešte nezačala.
| Posledný dokončený krok | Na čo sa ešte čaká? |
|---|---|
| TCP pripojené k proxy | Handshake s proxy, vrátane prijatia CONNECT |
| CONNECT prijatý | TLS cieľa, ak ho cieľ používa |
| Požiadavka na cieľ odoslaná | Odpoveď cieľa |
Nájdite časovač, ktorý je aktívny, kým konektor číta a zapisuje tento handshake. Vlastnosť s názvom „response timeout“ môže začať platiť až po vytvorení trasy. Pri HttpClient 5 rozlišujte ConnectionConfig a jeho časový limit soketu, konfiguráciu TLS handshake a časový limit odpovede na úrovni požiadavky. Príslušnú konfiguráciu pripojenia aplikujte prostredníctvom správcu, ktorý používa skutočný klient. Staršie generácie Apache HttpClient používajú iné API, takže starší úryvok nie je spoľahlivou mapou týchto zodpovedností.
Konečné odmietnutie CONNECT berte ako odpoveď proxy. Úspešná odpoveď, po ktorej nasleduje zaseknutie TLS, je iná fáza zlyhania. „TCP pripojené; žiadna úplná odpoveď CONNECT pred termínom nastavenia“ opisuje problém presnejšie ako všeobecný časový limit proxy.
Celkový krajný termín môže obmedziť čakanie volajúceho popri týchto fázových limitoch. Keď vyprší, zrušte alebo zatvorte operáciu prostredníctvom životného cyklu podporovaného klientom, kým ďalší pokus spotrebuje kapacitu pripojení.