För ett befintligt libcurl-handtag, separera listorna med destinations- och proxyhuvuden uttryckligen:

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

Håll det konfigurerade handtaget och de giltiga listorna vid liv under överföringen. CURLHEADER_SEPARATE skiljer huvuden som används på CONNECT från huvuden som används för destinationsbegäran. Äldre exempel med enhetlig policy kan lägga den vanliga listan i båda utbytena.

Begärans sökvägBetydelsen av separata listor
HTTPS i en vanlig CONNECT-tunnelProxy-utbytet kommer först; därefter följer destinationens HTTP-huvuden inne i destinationens TLS.
Vanlig HTTP-vidarebefordranProxyn kan läsa destinationshuvudena, och libcurl kan använda båda tillämpliga listorna på den enda vidarebefordrade begäran.

En ruttmarkör som bara gäller proxyn hör till proxy-utbytet. Vid vidarebefordran i klartext kan ett godtyckligt anpassat fält nå ursprunget om inte vidarebefordringsarrangemanget hanterar det; namnet på alternativet är ingen garanti för konfidentialitet.

Använd stödda autentiseringsuppgiftsalternativ för autentisering. För operatörsdefinierade metadata, fastställ vilket hopp som förbrukar dem och om de får vidarebefordras i stället för att lägga ett lösenord i ett generiskt fält.

När en markör saknas eller verkar läcka, identifiera den faktiska begäran som innehåller den. En header-callback som visar flera utbyten kan få korrekt separerade listor att se blandade ut.

Relaterade artiklar