Pentru un handle libcurl existent, separați explicit listele de anteturi pentru destinație și 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);

Mențineți handle-ul configurat și listele valide în viață pe durata transferului. CURLHEADER_SEPARATE distinge anteturile folosite pe CONNECT de anteturile folosite pentru cererea către destinație. Exemplele vechi cu politică unificată pot pune lista obișnuită în ambele schimburi.

Calea cereriiSemnificația listelor separate
HTTPS într-un tunel CONNECT obișnuitSchimbul cu proxy-ul vine mai întâi; apoi anteturile HTTP ale destinației urmează în interiorul TLS-ului destinației.
Redirecționare HTTP simplăProxy-ul poate citi anteturile destinației, iar libcurl poate folosi ambele liste aplicabile în singura cerere redirecționată.

Un marcaj de rutare doar pentru proxy aparține schimbului cu proxy-ul. La redirecționarea în text simplu, un câmp personalizat arbitrar poate ajunge la origine dacă aranjamentul de redirecționare nu îl gestionează; numele opțiunii nu este o garanție de confidențialitate.

Folosiți opțiunile de acreditări acceptate pentru autentificare. Pentru metadatele definite de operator, stabiliți ce salt le consumă și dacă pot fi redirecționate în loc să puneți o parolă într-un câmp generic.

Când un marcaj lipsește sau pare să se scurgă, identificați cererea reală care îl conține. Un callback de anteturi care arată mai multe schimburi poate face listele corect separate să pară amestecate.

Articole similare