Proxy, ki zavrača CONNECT, lahko vrne dokument napake HTTP, ki pojasnjuje njegovo politiko ali neuspeh nadaljnje povezave. Za dovoljeno diagnostiko proti običajnemu HTTP proxyju lahko curl pošlje to zahtevo neposredno in shrani odgovor:

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/

Končni URL naslavlja poslušalca proxyja. Za dovoljeno primerjavo javnih proxyjev seznam proxyjev HTTP ponuja kandidate za ta URL poslušalca. --request zagotavlja žeton metode; --request-target zagotavlja pooblastilo CONNECT. Njuna ločitev ustvari CONNECT service.example:443 HTTP/1.1.

Prazna možnost proxyja prepreči curlu, da bi to diagnostiko usmerjal skozi drug podedovan proxy. Ukaz namerno izpušča --fail, da se lahko dokument napake HTTP ohrani.

Poskus brez preverjanja se lahko ustavi pri 407, preden doseže preiskovano napako. Pri poustvarjanju preverjene zahteve uporabite predvideno ureditev preverjanja proxyja.

Namenjeno je pregledovanju odgovorov napak. Če proxy vrne 2xx, povezava postane tunel namesto običajnega prenosa telesa HTTP. Ta diagnostika z lastno metodo ne začne izmenjave TLS cilja in lahko na sprejetem odprtem tunelu doseže svojo časovno omejitev.

Za dejansko pridobivanje HTTPS uporabite običajni tok zahtev --proxy. Ohranite stanje in telo diagnostike skupaj z njunim konkretnim proxyjem in ciljem.

Sorodni članki