Одвојте ги прокси заглавијата на libcurl од заглавијата на веб-страницата
Дајте ѝ на libcurl одделни списоци со прокси и дестинациски заглавија, признавајќи дека препраќањето со отворен текст има различна граница на видливост.
За постоечка рачка на 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 може да ги користи двата применливи списоци во едното препратено барање. |
Маркерот за рутирање само за проксито ѝ припаѓа на размената со проксито. При препраќање со отворен текст, произволно прилагодено поле може да стигне до изворот освен ако распоредот за препраќање не се справи со него; името на опцијата не е гаранција за доверливост.
Користете поддржани опции за акредитиви при автентикација. За метаподатоци дефинирани од операторот, утврдете кој скок ги троши и дали смеат да се препратат наместо да ставите лозинка во генеричко поле.
Кога маркерот недостасува или изгледа дека протекува, идентификувајте го вистинското барање што го содржи. Повратен повик на заглавија што прикажува неколку размени може да направи правилно одвоените списоци да изгледаат измешани.