U existujícího popisovače libcurl výslovně oddělte seznamy cílových a proxy hlaviček:

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é seznamy po dobu přenosu živé. CURLHEADER_SEPARATE rozlišuje hlavičky použité na CONNECT od hlaviček použitých pro cílový požadavek. Starší příklady jednotné politiky mohou běžný seznam vložit do obou výměn.

Cesta požadavkuVýznam oddělených seznamů
HTTPS v běžném tunelu CONNECTNejprve probíhá výměna s proxy; cílové HTTP hlavičky následují uvnitř cílového TLS.
Běžné předávání HTTPProxy může číst cílové hlavičky a libcurl může použít oba příslušné seznamy v jediném předávaném požadavku.

Směrovací značka určená pouze pro proxy patří do výměny s proxy. Při předávání prostým textem se libovolné vlastní pole může dostat k původci, pokud se s ním režim předávání nevypořádá; název volby není zárukou důvěrnosti.

K ověřování používejte podporované volby přihlašovacích údajů. U metadat definovaných operátorem určete, který přeskok je spotřebovává a zda je lze předávat, místo abyste ukládali heslo do obecného pole.

Když značka chybí nebo se zdá, že uniká, identifikujte skutečný požadavek, který ji obsahuje. Zpětné volání hlaviček zobrazující několik výměn může způsobit, že správně oddělené seznamy vypadají smíšeně.

Související články