ส่วนหัว PHP cURL ผ่านพร็อกซี: CONNECT กับการตอบกลับของปลายทาง
แยกส่วนหัว CONNECT การยืนยันตัวตน การเปลี่ยนเส้นทาง และการตอบกลับสุดท้ายออกจากกันเมื่อการถ่ายโอน PHP cURL ใช้พร็อกซี
เก็บบรรทัดส่วนหัวแยกจากเนื้อหาการตอบกลับ การถ่ายโอนผ่านพร็อกซีอาจส่งส่วนหัว CONNECT การยืนยันตัวตน การเปลี่ยนเส้นทาง และการตอบกลับของปลายทางในการดำเนินการเดียว:
$headerLines = [];
curl_setopt($handle, CURLOPT_HEADERFUNCTION,
function ($handle, $line) use (&$headerLines) {
$headerLines[] = $line;
return strlen($line);
}
);
คอลแบ็กนี้เก็บลำดับบรรทัดดิบและคืนจำนวนไบต์ที่ยอมรับ ได้รับบรรทัดที่สมบูรณ์ แต่ยังไม่ได้จัดกลุ่มเป็นคำตอบหรือเลือกส่วนหัวของเว็บไซต์สุดท้าย
ตีความลำดับเป็นบล็อก
บรรทัดสถานะ HTTP เริ่มบล็อกคำตอบ และบรรทัดว่างสิ้นสุดส่วนหัวของบล็อกนั้น รักษาขอบเขตเหล่านี้ก่อนเลือกคำตอบปลายทางสุดท้าย การพยายามยืนยันตัวตนระหว่างทางและการเปลี่ยนเส้นทางอาจเพิ่มบล็อกได้แต่ละครั้ง
เทรลเลอร์อาจมาถึงภายหลังผ่านคอลแบ็ก เก็บสถานะตัวแยกวิเคราะห์ให้พอเพื่อแยกออกจากส่วนหัวเริ่มต้น แทนที่จะแนบทุกฟิลด์ภายหลังเข้ากับคำตอบแรก
เก็บหรือระงับหลักฐานของอุโมงค์
อ่าน CURLINFO_HTTP_CONNECTCODE แยกต่างหากสำหรับสถานะ CONNECT ของอุโมงค์ HTTPS อุโมงค์ที่ยอมรับไม่ได้พิสูจน์การตอบกลับที่สำเร็จของเว็บไซต์
หากผู้เก็บไม่ต้องการส่วนหัว CONNECT CURLOPT_SUPPRESS_CONNECT_HEADERS ควบคุมการส่งไปยังเอาต์พุตส่วนหัวที่กำหนดค่าและเส้นทางคอลแบ็ก ตรวจสอบการสนับสนุนใน libcurl และบิลด์ PHP ที่เชื่อมโยง การระงับทำให้การเก็บง่ายขึ้นแต่ลบหลักฐานอุโมงค์ระดับส่วนหัวที่ช่วยในการวินิจฉัย
อย่ากู้คืนเนื้อหาโดยใช้ระยะออฟเซ็ตคงที่หรือค้นหาแท็ก HTML ขนาดส่วนหัวแตกต่างกัน คำตอบระหว่างทางต่างกัน และเนื้อหาอาจเป็นไบนารีหรือว่างเปล่า รายงานข้อบกพร่องเก่าที่เฉพาะเจาะจงรุ่นไม่ใช่เหตุผลของออฟเซ็ตที่เดา
แยกการจัดการเนื้อหาไว้ และเก็บข้อผิดพลาดการถ่ายโอนพร้อมขั้นตอนการตอบกลับที่สังเกตได้หากการเก็บหรือการแยกวิเคราะห์ล้มเหลว สิ่งนี้แยกแยะคอลแบ็กที่ถูกตัด ข้อมูลแอปพลิเคชันที่ผิดรูป และการแลกเปลี่ยนพร็อกซีที่ถูกปฏิเสธ