Per a un manegador de libcurl existent, separeu explícitament les llistes de capçaleres de destinació i de servidor intermedi:

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

Mantingueu viu el manegador configurat i les llistes vàlides durant la transferència. CURLHEADER_SEPARATE distingeix les capçaleres utilitzades a CONNECT de les capçaleres utilitzades per a la sol·licitud de destinació. Els exemples antics de política unificada poden posar la llista ordinària en tots dos intercanvis.

Camí de la sol·licitudSignificat de les llistes separades
HTTPS dins d'un túnel CONNECT ordinariL'intercanvi amb el servidor intermedi va primer; les capçaleres HTTP de destinació segueixen dins del TLS de destinació.
Reenviament HTTP plaEl servidor intermedi pot llegir les capçaleres de destinació, i libcurl pot utilitzar totes dues llistes aplicables en l'única sol·licitud reenviada.

Un marcador d'encaminament només per al servidor intermedi pertany a l'intercanvi amb el servidor intermedi. Amb reenviament en text pla, un camp personalitzat arbitrari pot arribar a l'origen tret que l'arranjament de reenviament el gestioni; el nom de l'opció no és cap garantia de confidencialitat.

Utilitzeu opcions de credencials compatibles per a l'autenticació. Per a les metadades definides per l'operador, determineu quin salt les consumeix i si es poden reenviar en lloc de posar una contrasenya en un camp genèric.

Quan un marcador falta o sembla que es filtra, identifiqueu la sol·licitud real que el conté. Una devolució de trucada de capçaleres que mostra diversos intercanvis pot fer que llistes correctament separades semblin barrejades.

Articles relacionats