PHP cURL प्रॉक्सी हेडर: CONNECT विरुद्ध गंतव्य प्रतिसाद
जेव्हा PHP cURL हस्तांतरण प्रॉक्सी वापरते तेव्हा CONNECT, प्रमाणीकरण, रीडायरेक्ट आणि अंतिम प्रतिसाद हेडर वेगळे ठेवा.
प्रतिसादाच्या मुख्य भागापासून हेडर ओळी वेगळ्या पद्धतीने गोळा करा. प्रॉक्सीमधून जाणारे हस्तांतरण एकाच क्रियेत CONNECT, प्रमाणीकरण, रीडायरेक्ट आणि गंतव्य प्रतिसादाचे हेडर पोहोचवू शकते:
$headerLines = [];
curl_setopt($handle, CURLOPT_HEADERFUNCTION,
function ($handle, $line) use (&$headerLines) {
$headerLines[] = $line;
return strlen($line);
}
);
हा कॉलबॅक कच्चा ओळीचा क्रम राखतो आणि स्वीकारलेल्या बाइट्सची संख्या परत देतो. त्याला पूर्ण ओळी मिळतात; पण तो अजून त्यांचे प्रतिसादांमध्ये गट करत नाही किंवा अंतिम वेबसाइटचे हेडर निवडत नाही.
क्रमाचा ब्लॉक म्हणून अर्थ लावा
HTTP स्थिती ओळ प्रतिसाद ब्लॉक सुरू करते आणि रिकामी ओळ त्याचे हेडर संपवते. अंतिम गंतव्य प्रतिसाद निवडण्यापूर्वी त्या सीमा जपून ठेवा. मधले प्रमाणीकरण प्रयत्न आणि रीडायरेक्ट प्रत्येकी ब्लॉक जोडू शकतात.
ट्रेलर नंतर कॉलबॅकमधून येऊ शकतात. प्रत्येक पुढील फील्ड पहिल्या प्रतिसादाला जोडण्याऐवजी त्यांना सुरुवातीच्या हेडरपासून वेगळे ओळखण्यासाठी पुरेशी पार्सर स्थिती ठेवा.
टनलचा पुरावा ठेवा किंवा दाबून टाका
HTTPS टनलच्या CONNECT स्थितीसाठी CURLINFO_HTTP_CONNECTCODE वेगळे वाचा. स्वीकारलेली टनल यशस्वी वेबसाइट प्रतिसाद सिद्ध करत नाही.
जर संग्राहकाला CONNECT हेडरची गरज नसेल, तर CURLOPT_SUPPRESS_CONNECT_HEADERS कॉन्फिगर केलेल्या हेडर आउटपुट आणि कॉलबॅक मार्गांमध्ये त्यांची डिलिव्हरी नियंत्रित करतो. जोडलेल्या libcurl आणि PHP बिल्डमधील समर्थन तपासा. दाबल्याने संग्रह सोपा होतो, पण निदानास मदत करू शकणारा हेडर-स्तरीय टनल पुरावा काढून टाकला जातो.
स्थिर ऑफसेटने किंवा HTML टॅग शोधून मुख्य भाग पुन्हा मिळवू नका. हेडरचे आकार बदलतात, मधले प्रतिसाद वेगळे असतात आणि मुख्य भाग बायनरी किंवा रिकामा असू शकतो. जुना आवृत्ती-विशिष्ट बग अहवाल अंदाजित ऑफसेटला न्याय देत नाही.
मुख्य भागाची हाताळणी वेगळी ठेवा आणि संग्रह किंवा पार्सिंग अयशस्वी झाल्यास निरीक्षण केलेल्या प्रतिसाद टप्प्यांसह हस्तांतरण त्रुटी ठेवा. यामुळे खंडित कॉलबॅक, विकृत अॅप्लिकेशन डेटा आणि नाकारलेला प्रॉक्सी देवाणघेवाण वेगळी होते.