Badanie treści nieudanej odpowiedzi proxy CONNECT za pomocą curl
Wyślij poprawnie zbudowane diagnostyczne CONNECT bezpośrednio do proxy HTTP i zapisz osobno nagłówki oraz treść błędu HTTP.
Proxy odrzucające CONNECT może zwrócić dokument błędu HTTP wyjaśniający jego politykę lub niepowodzenie dalszego połączenia. W przypadku dozwolonej diagnostyki wobec zwykłego proxy HTTP curl może wysłać to żądanie bezpośrednio i zapisać odpowiedź:
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/
Końcowy URL adresuje nasłuch proxy. W przypadku dozwolonego porównania publicznych proxy lista proxy HTTP dostarcza kandydatów dla tego URL nasłuchu. --request dostarcza token metody; --request-target dostarcza uprawnienie CONNECT. Rozdzielenie ich daje CONNECT service.example:443 HTTP/1.1.
Pusta opcja proxy uniemożliwia curl kierowanie tej diagnostyki przez inne odziedziczone proxy. Polecenie celowo pomija --fail, aby dokument błędu HTTP mógł zostać zachowany.
Próba bez uwierzytelnienia może zatrzymać się na 407, zanim dotrze do badanego błędu. Podczas odtwarzania uwierzytelnionego żądania użyj zamierzonego układu uwierzytelniania proxy.
Służy to do badania odpowiedzi błędów. Jeśli proxy zwróci 2xx, połączenie staje się tunelem, a nie zwykłym przesyłaniem treści HTTP. Ta diagnostyka z własną metodą nie rozpoczyna wymiany TLS celu i może osiągnąć swój limit czasu na zaakceptowanym otwartym tunelu.
Do rzeczywistego pobierania HTTPS używaj normalnego przepływu żądań --proxy. Zachowaj status i treść diagnostyki razem z ich konkretnym proxy i celem.