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 zahtjevaZnačenje odvojenih lista
HTTPS unutar običnog CONNECT tunelaPrvo dolazi razmjena s proxyjem; zatim HTTP zaglavlja odredišta slijede unutar TLS-a odredišta.
Obično HTTP prosljeđivanjeProxy 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.

Povezani članci