Ispezionare il corpo di una risposta CONNECT proxy non riuscita con curl
Invia un CONNECT diagnostico correttamente formato direttamente a un proxy HTTP e salva separatamente le intestazioni e il corpo dell'errore HTTP.
Un proxy che rifiuta CONNECT può restituire un documento di errore HTTP che spiega la sua politica o l'errore della connessione successiva. Per una diagnostica autorizzata verso un normale proxy HTTP, curl può inviare quella richiesta direttamente e salvare la risposta:
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/
L'URL finale punta al listener del proxy. Per un confronto consentito di proxy pubblici, la lista di proxy HTTP fornisce candidati per quell'URL del listener. --request fornisce il token del metodo; --request-target fornisce l'autorità CONNECT. Tenerli separati produce CONNECT service.example:443 HTTP/1.1.
L'opzione proxy vuota impedisce a curl di instradare questa diagnostica attraverso un altro proxy ereditato. Il comando omette deliberatamente --fail così che un documento di errore HTTP possa essere conservato.
Un tentativo non autenticato può fermarsi a 407 prima di raggiungere l'errore oggetto dell'indagine. Usa la disposizione di autenticazione prevista dal proxy quando riproduci una richiesta autenticata.
Serve a ispezionare le risposte di errore. Se il proxy restituisce 2xx, la connessione diventa un tunnel invece di un normale trasferimento di corpo HTTP. Questa diagnostica con metodo personalizzato non avvia lo scambio TLS della destinazione e può raggiungere il proprio limite di tempo su un tunnel aperto accettato.
Usa il normale flusso di richieste --proxy per un recupero HTTPS reale. Conserva lo stato e il corpo della diagnostica con il loro proxy e obiettivo specifici.