Inspecionar o corpo de uma resposta CONNECT de proxy com falha com curl
Envie um CONNECT de diagnóstico corretamente formado diretamente a um proxy HTTP e salve separadamente os cabeçalhos e o corpo da falha HTTP.
Um proxy que rejeita CONNECT pode retornar um documento de erro HTTP explicando sua política ou a falha da conexão seguinte. Para um diagnóstico autorizado contra um proxy HTTP comum, o curl pode enviar essa solicitação diretamente e salvar a resposta:
curl --proxy '' --http1.1 --max-time 10 \
--request CONNECT \
--request-target service.example:443 \
--header 'Host: service.example:443' \
--dump-header tunnel.headers \
--output tunnel.body \
http://proxy.example:8080/
A URL final endereça o ouvinte do proxy. Para uma comparação permitida de proxies públicos, a lista de proxies HTTP oferece candidatos para essa URL de ouvinte. --request fornece o token do método; --request-target fornece a autoridade CONNECT. Mantê-los separados produz CONNECT service.example:443 HTTP/1.1.
A opção de proxy vazia impede que o curl encaminhe este diagnóstico por outro proxy herdado. O comando omite deliberadamente --fail para que um documento de erro HTTP possa ser preservado.
Uma tentativa sem autenticação pode parar em 407 antes de chegar à falha investigada. Use a disposição de autenticação prevista pelo proxy ao reproduzir uma solicitação autenticada.
Isto serve para inspecionar respostas de falha. Se o proxy retornar 2xx, a conexão torna-se um túnel em vez de uma transferência comum de corpo HTTP. Este diagnóstico de método personalizado não inicia a troca TLS do destino e pode atingir seu limite de tempo em um túnel aberto aceito.
Use o fluxo normal de solicitações --proxy para uma obtenção HTTPS real. Guarde o status e o corpo do diagnóstico junto com seu proxy e alvo específicos.