สำหรับแฮนเดิล 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 สามารถใช้ทั้งสองรายการที่เกี่ยวข้องในคำขอที่ส่งต่อเพียงครั้งเดียว

เครื่องหมายกำหนดเส้นทางสำหรับพร็อกซี่เท่านั้นเป็นของการแลกเปลี่ยนพร็อกซี่ ด้วยการส่งต่อข้อความธรรมดา ฟิลด์กำหนดเองตามอำเภอใจสามารถไปถึงต้นทางได้ เว้นแต่การจัดส่งต่อจะจัดการมัน ชื่อของตัวเลือกไม่ใช่การรับประกันความลับ

ใช้ตัวเลือกข้อมูลรับรองที่รองรับสำหรับการรับรองความถูกต้อง สำหรับเมทาดาทาที่ผู้ปฏิบัติงานกำหนด ให้ระบุว่าขั้นตอนใดใช้มันและสามารถส่งต่อได้หรือไม่ แทนที่จะใส่รหัสผ่านในฟิลด์ทั่วไป

เมื่อเครื่องหมายหายไปหรือดูเหมือนรั่วไหล ให้ระบุคำขอจริงที่มีมัน การเรียกกลับส่วนหัวที่แสดงการแลกเปลี่ยนหลายครั้งอาจทำให้รายการที่แยกอย่างถูกต้องดูเหมือนปนกัน

บทความที่เกี่ยวข้อง