Za postojeći libcurl ručicu, eksplicitno odvojite popise 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 konfiguriranu ručicu i važeće popise živima tijekom prijenosa. CURLHEADER_SEPARATE razlikuje zaglavlja koja se koriste na CONNECT od zaglavlja koja se koriste za zahtjev prema odredištu. Stariji primjeri objedinjene politike mogu staviti obični popis u obje razmjene.

Put zahtjevaZnačenje odvojenih popisa
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 oba primjenjiva popisa 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 se aranžman prosljeđivanja njime bavi; naziv opcije nije jamstvo povjerljivosti.

Koristite podržane opcije vjerodajnica 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 odvojeni popisi izgledaju pomiješano.

Povezani članci