เฮดเดอร์ที่เพิ่มลงใน http.Request.Header อธิบายคำขอปลายทาง เมื่อ HTTPS ใช้พร็อกซิ HTTP, transport จะทำ CONNECT ก่อน เฮดเดอร์ของคำขอปลายทางไม่ใช่ API การกำหนดค่าทั่วไปสำหรับการแลกเปลี่ยนก่อนหน้านั้น

สำหรับเฮดเดอร์คงที่ที่พร็อกซิของคุณต้องการ ให้กำหนดค่า ProxyConnectHeader ของ transport:

transport := &http.Transport{
    Proxy: http.ProxyURL(proxyURL),
    ProxyConnectHeader: http.Header{
        "X-Proxy-Account": []string{"example-account"},
    },
}

ในที่นี้ proxyURL คือ URL ปลายทางที่แยกวิเคราะห์แล้ว เฮดเดอร์นี้เป็นเพียงตัวอย่างและมีประโยชน์เมื่อผู้ให้บริการพร็อกซิกำหนดฟิลด์เช่นนี้เท่านั้น

สำหรับค่าที่เลือกตามพร็อกซิหรือปลายทาง ให้ใช้ GetProxyConnectHeader คอลแบ็กที่จัดทำเอกสารไว้จะได้รับ URL ของพร็อกซิและเป้าหมาย CONNECT เมื่อคอลแบ็กนี้ไม่ใช่ nil ฟิลด์คงที่ ProxyConnectHeader จะถูกเพิกเฉย

เก็บค่าไว้ในขอบเขตที่ตั้งใจไว้ เครื่องหมายบัญชีที่ใช้เฉพาะพร็อกซิเป็นของการแลกเปลี่ยนกับพร็อกซิ ส่วนค่าได้รับอนุญาตของเว็บไซต์เป็นของคำขอปลายทาง หากคอลแบ็กไม่สามารถสร้างค่า handshake ที่จำเป็นได้ ให้ส่งคืนข้อผิดพลาดแทนการส่งคำขอที่กำหนดค่าไว้ต่างออกไปอย่างเงียบ ๆ

การตั้งค่าเหล่านี้ปรับแต่งการจัดการ CONNECT ไม่ได้คิดค้นโปรโตคอลการรับรองความถูกต้องขึ้นเอง หรือเปลี่ยนแปลงนโยบายการเข้าถึงของบริการพร็อกซิ

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