Undersök kroppen i ett misslyckat proxy CONNECT-svar med curl
Skicka en korrekt utformad diagnostisk CONNECT direkt till en HTTP-proxy och spara HTTP-feletns rubriker och kropp var för sig.
En proxy som avvisar CONNECT kan returnera ett HTTP-feldokument som förklarar dess policy eller felet i den fortsatta anslutningen. För en auktoriserad diagnostik mot en vanlig HTTP-proxy kan curl skicka den begäran direkt och spara svaret:
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/
Den slutliga URL:en adresserar proxyns lyssnare. För en tillåten jämförelse av offentliga proxyserverar ger HTTP-proxylistan kandidater för den lyssnar-URL:en. --request tillhandahåller metodtoken; --request-target tillhandahåller CONNECT-behörigheten. Att hålla dem åtskilda ger CONNECT service.example:443 HTTP/1.1.
Det tomma proxy-alternativet hindrar curl från att dirigera denna diagnostik genom en annan ärvd proxy. Kommandot utelämnar medvetet --fail så att ett HTTP-feldokument kan bevaras.
Ett oautentiserat försök kan stanna vid 407 innan det når felet som undersöks. Använd proxyns avsedda autentiseringsupplägg när du återskapar en autentiserad begäran.
Detta är för att undersöka felsvar. Om proxyn returnerar 2xx blir anslutningen en tunnel i stället för en vanlig HTTP-kroppsöverföring. Denna diagnostik med egen metod startar inte destinationens TLS-utbyte och kan nå sin tidsgräns på en accepterad öppen tunnel.
Använd det vanliga --proxy-begäransflödet för ett faktiskt HTTPS-hämtning. Behåll diagnostikens status och kropp tillsammans med deras specifika proxy och mål.