Odvojite libcurl-ove proxy zaglavlja od zaglavlja web stranice
Dajte libcurl-u 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 prijenosa. CURLHEADER_SEPARATE razlikuje zaglavlja korištena na CONNECT od zaglavlja korištenih za zahtjev prema odredištu. Stariji primjeri objedinjene politike mogu staviti običnu listu u oba razmjena.
| Putanja zahtjeva | Značenje odvojenih lista |
|---|---|
| HTTPS unutar običnog CONNECT tunela | Prvo dolazi razmjena s proxyjem; zatim HTTP zaglavlja odredišta slijede unutar TLS-a odredišta. |
| Obično HTTP prosljeđivanje | Proxy može čitati odredišna zaglavlja, a libcurl može koristiti obje primjenjive liste na jednom proslijeđenom zahtjevu. |
Marker usmjeravanja samo za proxy pripada razmjeni s 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 povjerljivosti.
Koristite podržane opcije akreditiva za autentifikaciju. Za metapodatke koje definira operator, utvrdite koji hop ih troši i smiju li se proslijediti umjesto stavljanja lozinke u generičko polje.
Kada marker nedostaje ili izgleda da curi, identificirajte stvarni zahtjev koji ga sadrži. Povratni poziv zaglavlja koji prikazuje nekoliko razmjena može učiniti da ispravno odvojene liste izgledaju pomiješano.