Tempos limite de CONNECT do proxy após uma conexão TCP bem-sucedida
Localize o tempo limite ativo durante o CONNECT em vez de presumir que uma conexão TCP concluída também concluiu a configuração do túnel.
O tempo limite de conexão TCP já cumpriu sua função quando o cliente se conecta ao proxy. A próxima espera—receber uma resposta CONNECT completa—pode ser regida por um temporizador diferente.
O proxy pode ainda estar conectando-se ao upstream, trocando mensagens de autenticação ou aguardando outro serviço. A resposta normal do site ainda não começou.
| Última etapa concluída | O que ainda está em espera? |
|---|---|
| TCP conectado ao proxy | O handshake do proxy, incluindo a aceitação do CONNECT |
| CONNECT aceito | O TLS do destino, quando o alvo o utiliza |
| Requisição ao destino enviada | A resposta do destino |
Encontre o temporizador ativo enquanto o conector lê e grava esse handshake. Uma propriedade chamada “response timeout” pode entrar em vigor somente após o estabelecimento da rota. Com o HttpClient 5, distinga ConnectionConfig e seu tempo limite de socket, a configuração do handshake TLS e o tempo limite de resposta no nível da requisição. Aplique a configuração de conexão pertinente por meio do gerenciador usado pelo cliente real. Gerações antigas do Apache HttpClient usam APIs diferentes, portanto um trecho antigo não é um mapa confiável dessas responsabilidades.
Mantenha uma rejeição final de CONNECT como resposta do proxy. Uma resposta bem-sucedida seguida de uma parada de TLS é outro estágio de falha. “TCP conectado; nenhuma resposta CONNECT completa antes do prazo de configuração” descreve o problema com mais precisão do que um tempo limite genérico de proxy.
Um prazo total pode limitar a espera do chamador junto com esses limites de fase. Quando ele expirar, cancele ou feche a operação pelo ciclo de vida suportado pelo cliente antes que outra tentativa consuma capacidade de conexão.