Un proxy care refuză CONNECT poate returna un document de eroare HTTP care explică politica sa sau eșecul conexiunii ulterioare. Pentru un diagnostic autorizat împotriva unui proxy HTTP obișnuit, curl poate trimite cererea direct și poate salva răspunsul:

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/

URL-ul final adresează ascultătorul proxy-ului. Pentru o comparație permisă de proxy-uri publice, lista de proxy-uri HTTP oferă candidați pentru acel URL de ascultător. --request furnizează tokenul metodei; --request-target furnizează autoritatea CONNECT. Păstrarea lor separate produce CONNECT service.example:443 HTTP/1.1.

Opțiunea de proxy goală împiedică curl să direcționeze acest diagnostic printr-un alt proxy moștenit. Comanda omite deliberat --fail pentru ca documentul de eroare HTTP să poată fi păstrat.

O încercare neautentificată se poate opri la 407 înainte de a ajunge la eșecul investigat. Folosiți aranjamentul de autentificare prevăzut de proxy când reproduceți o cerere autentificată.

Aceasta este pentru inspectarea răspunsurilor de eșec. Dacă proxy-ul returnează 2xx, conexiunea devine un tunel în loc de un transfer obișnuit de corp HTTP. Acest diagnostic cu metodă personalizată nu începe schimbul TLS al destinației și poate atinge limita de timp pe un tunel deschis acceptat.

Folosiți fluxul normal de cereri --proxy pentru o descărcare HTTPS reală. Păstrați starea și corpul diagnosticului împreună cu proxy-ul și ținta lor specifice.

Articole similare