Separate le intestazioni proxy di libcurl dalle intestazioni del sito web
Date a libcurl elenchi separati di intestazioni proxy e di destinazione, riconoscendo che l'inoltro in testo normale ha un limite di visibilità diverso.
Per un handle libcurl esistente, separate esplicitamente gli elenchi di intestazioni di destinazione e proxy:
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); Mantenete vivo l'handle configurato e gli elenchi validi durante il trasferimento. CURLHEADER_SEPARATE distingue le intestazioni usate su CONNECT da quelle usate per la richiesta di destinazione. I vecchi esempi a politica unificata possono inserire l'elenco ordinario in entrambi gli scambi.
| Percorso della richiesta | Significato degli elenchi separati |
|---|---|
| HTTPS in un tunnel CONNECT ordinario | Lo scambio con il proxy viene prima; poi seguono le intestazioni HTTP di destinazione all'interno del TLS di destinazione. |
| Inoltro HTTP semplice | Il proxy può leggere le intestazioni di destinazione e libcurl può usare entrambi gli elenchi applicabili sull'unica richiesta inoltrata. |
Un marcatore di instradamento solo per il proxy appartiene allo scambio con il proxy. Con l'inoltro in testo normale, un campo personalizzato arbitrario può raggiungere l'origine, a meno che la disposizione di inoltro non lo gestisca; il nome dell'opzione non è una garanzia di riservatezza.
Usate le opzioni di credenziali supportate per l'autenticazione. Per i metadati definiti dall'operatore, stabilite quale salto li consuma e se possono essere inoltrati invece di inserire una password in un campo generico.
Quando un marcatore manca o sembra fuoriuscire, identificate la richiesta effettiva che lo contiene. Un callback di intestazioni che mostra più scambi può far sembrare mescolati elenchi correttamente separati.