เวลาหมดเวลาของการเชื่อมต่อ TCP ได้ทำหน้าที่ของมันแล้วเมื่อไคลเอนต์เชื่อมต่อกับพร็อกซี การรอถัดไป—การได้รับคำตอบ CONNECT ที่สมบูรณ์—อาจถูกควบคุมโดยตัวจับเวลาอีกตัว

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

ขั้นตอนสุดท้ายที่เสร็จสมบูรณ์ยังรออะไรอยู่?
TCP เชื่อมต่อกับพร็อกซีแล้วการจับมือของพร็อกซี รวมถึงการยอมรับ CONNECT
CONNECT ถูกยอมรับแล้วTLS ของปลายทาง เมื่อเป้าหมายใช้งาน
ส่งคำขอไปยังปลายทางแล้วคำตอบของปลายทาง

หาตัวจับเวลาที่ทำงานอยู่ขณะที่ตัวเชื่อมต่ออ่านและเขียนการจับมือนั้น คุณสมบัติที่ชื่อ “response timeout” อาจมีผลหลังจากการสร้างเส้นทางแล้วเท่านั้น กับ HttpClient 5 ให้แยกความแตกต่างระหว่าง ConnectionConfig และเวลาหมดเวลาซ็อกเก็ตของมัน การกำหนดค่าการจับมือ TLS และเวลาหมดเวลาของคำตอบในระดับคำขอ ใช้การกำหนดค่าการเชื่อมต่อที่เกี่ยวข้องผ่านตัวจัดการที่ไคลเอนต์จริงใช้งาน Apache HttpClient รุ่นเก่าใช้ API ที่ต่างกัน ดังนั้นตัวอย่างโค้ดเก่าจึงไม่ใช่แผนที่ที่เชื่อถือได้ของความรับผิดชอบเหล่านี้

ให้ถือการปฏิเสธ CONNECT ครั้งสุดท้ายเป็นคำตอบจากพร็อกซี คำตอบที่สำเร็จตามด้วย TLS หยุดชะงักเป็นอีกระยะของความล้มเหลว «TCP เชื่อมต่อแล้ว; ไม่มีคำตอบ CONNECT ที่สมบูรณ์ก่อนกำหนดเวลาตั้งค่า» อธิบายปัญหาได้แม่นยำกว่าเวลาหมดเวลาแบบทั่วไปของพร็อกซี

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

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