Za postojeći libcurl ručicu, eksplicitno odvojite liste odredišnih i proxy zaglavlja:

curl_easy_setopt(handle, CURLOPT_HEADEROPT, (long)CURLHEADER_SEPARATE);
curl_easy_setopt(handle, CURLOPT_PROXYHEADER, proxy_headers);
curl_easy_setopt(handle, CURLOPT_HTTPHEADER, origin_headers);

Držite konfigurisanu ručicu i važeće liste živim tokom prenosa. CURLHEADER_SEPARATE razlikuje zaglavlja korišćena na CONNECT od zaglavlja korišćenih za zahtev prema odredištu. Stariji primeri objedinjene politike mogu staviti običnu listu u oba razmena.

Putanja zahtevaZnačenje odvojenih listi
HTTPS unutar običnog CONNECT tunelaPrvo dolazi razmena sa proxyjem; zatim HTTP zaglavlja odredišta slede unutar TLS-a odredišta.
Obično HTTP prosljeđivanjeProxy može čitati odredišna zaglavlja, a libcurl može koristiti obe primenljive liste na jednom prosleđenom zahtevu.

Marker usmeravanja samo za proxy pripada razmeni sa proxyjem. Kod prosljeđivanja čistim tekstom, proizvoljno prilagođeno polje može doći do izvora osim ako aranžman prosljeđivanja njime upravlja; naziv opcije nije garancija poverljivosti.

Koristite podržane opcije akreditiva za autentifikaciju. Za metapodatke koje definiše operator, utvrdite koji hop ih troši i smeju li se proslediti umesto stavljanja lozinke u generičko polje.

Kada marker nedostaje ili izgleda da curi, identifikujte stvarni zahtev koji ga sadrži. Povratni poziv zaglavlja koji prikazuje nekoliko razmena može učiniti da ispravno odvojene liste izgledaju pomešano.

Povezani članci