Een proxy die CONNECT weigert, kan een HTTP-foutdocument retourneren dat het beleid of het mislukken van de vervolgverbinding uitlegt. Voor een geautoriseerde diagnose tegen een gewone HTTP-proxy kan curl dat verzoek rechtstreeks versturen en het antwoord opslaan:

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/

De uiteindelijke URL adresseert de proxy-listener. Voor een toegestane vergelijking van openbare proxies biedt de HTTP-proxylijst kandidaten voor die listener-URL. --request levert het methodetoken; --request-target levert de CONNECT-autoriteit. Ze gescheiden houden levert CONNECT service.example:443 HTTP/1.1 op.

De lege proxy-optie voorkomt dat curl deze diagnose via een andere geërfde proxy leidt. Het commando laat --fail bewust weg zodat een HTTP-foutdocument bewaard kan blijven.

Een niet-geauthenticeerde poging kan bij 407 stoppen voordat de onderzochte fout wordt bereikt. Gebruik de door de proxy bedoelde authenticatieopzet wanneer je een geauthenticeerd verzoek reproduceert.

Dit is bedoeld om foutresponsen te inspecteren. Als de proxy 2xx retourneert, wordt de verbinding een tunnel in plaats van een gewone HTTP-bodyoverdracht. Deze diagnose met een aangepaste methode start de TLS-uitwisseling van de bestemming niet en kan op een geaccepteerde open tunnel de tijdslimiet bereiken.

Gebruik de normale --proxy-aanvraagstroom voor een daadwerkelijke HTTPS-ophaling. Bewaar de diagnosestatus en -body samen met hun specifieke proxy en doel.

Gerelateerde artikelen