За постојећу ручку libcurl, експлицитно одвојте листе одредишних и прокси заглавља:

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

Држите конфигурисану ручку и важеће листе живим током преноса. CURLHEADER_SEPARATE разликује заглавља која се користе на CONNECT од заглавља која се користе за захтев према одредишту. Старији примери обједињене политике могу ставити обичну листу у оба размена.

Путања захтеваЗначење одвојених листа
HTTPS унутар обичног CONNECT тунелаПрво долази размена са проксијем; затим HTTP заглавља одредишта следе унутар TLS-а одредишта.
Обично HTTP прослеђивањеПрокси може да чита заглавља одредишта, а libcurl може да користи обе применљиве листе на једном прослеђеном захтеву.

Маркер усмеравања само за прокси припада размени са проксијем. Код прослеђивања чистим текстом, произвољно прилагођено поље може да дође до извора осим ако се распоред прослеђивања њиме бави; назив опције није гаранција поверљивости.

Користите подржане опције акредитива за аутентификацију. За метаподатке које дефинише оператер, утврдите који хоп их троши и смеју ли се проследити уместо да ставите лозинку у генеричко поље.

Када маркер недостаје или изгледа да цури, идентификујте стварни захтев који га садржи. Повратни позив заглавља који приказује неколико размена може учинити да исправно одвојене листе изгледају помешано.

Повезани чланци