Odvojite libcurl proxy zaglavlja od zaglavlja web stranice
Dajte libcurlu odvojene liste proxy i odredišnih zaglavlja, uz uvažavanje da prosljeđivanje čistim tekstom ima drugačiju granicu vidljivosti.
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 zahteva | Značenje odvojenih listi |
|---|---|
| HTTPS unutar običnog CONNECT tunela | Prvo dolazi razmena sa proxyjem; zatim HTTP zaglavlja odredišta slede unutar TLS-a odredišta. |
| Obično HTTP prosljeđivanje | Proxy 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.