ہیڈر لائنیں جواب کے بنیادی حصے سے الگ جمع کریں۔ پراکسی کے ذریعے منتقلی ایک ہی کارروائی میں 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 ٹیگ تلاش کر کے بحال نہ کریں۔ ہیڈر کے سائز مختلف ہوتے ہیں، درمیانی جوابات مختلف ہوتے ہیں، اور جسم بائنری یا خالی ہو سکتا ہے۔ پرانی ورژن مخصوص بگ رپورٹ اندازے کے آفسیٹ کا جواز نہیں بنتی۔

جسم کی دیکھ بھال الگ رکھیں، اور اگر جمع کرنا یا تجزیہ ناکام ہو تو منتقلی کی خرابی کو مشاہدہ شدہ جواب مراحل کے ساتھ رکھیں۔ یہ منقطع کال بیک، خراب ایپلیکیشن ڈیٹا اور مسترد شدہ پراکسی تبادلے میں فرق کرتا ہے۔

متعلقہ مضامین