Pri existujúcom popisovači libcurl výslovne oddeľte zoznamy cieľových a proxy hlavičiek:

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);

Udržujte nakonfigurovaný popisovač a platné zoznamy počas prenosu živé. CURLHEADER_SEPARATE rozlišuje hlavičky použité na CONNECT od hlavičiek použitých pre cieľovú požiadavku. Staršie príklady jednotnej politiky môžu bežný zoznam vložiť do oboch výmen.

Cesta požiadavkyVýznam oddelených zoznamov
HTTPS v bežnom tuneli CONNECTNajprv prebehne výmena s proxy; potom cieľové HTTP hlavičky nasledujú vnútri cieľového TLS.
Bežné preposielanie HTTPProxy môže čítať cieľové hlavičky a libcurl môže použiť oba príslušné zoznamy v jedinej preposielanej požiadavke.

Smerovacia značka určená len pre proxy patrí do výmeny s proxy. Pri preposielaní čistým textom sa ľubovoľné vlastné pole môže dostať k pôvodcovi, ak sa s ním režim preposielania nevyrovná; názov voľby nie je zárukou dôvernosti.

Na overovanie používajte podporované voľby prihlasovacích údajov. Pri metadátach definovaných operátorom určite, ktorý skok ich spotrebúva a či sa smú preposielať, namiesto ukladania hesla do všeobecného poľa.

Keď značka chýba alebo sa zdá, že uniká, identifikujte skutočnú požiadavku, ktorá ju obsahuje. Spätné volanie hlavičiek zobrazujúce niekoľko výmen môže spôsobiť, že správne oddelené zoznamy vyzerajú zmiešané.

Súvisiace články