HTTP Connection ہیڈرز کو کوما سے الگ کیے گئے ٹوکن کے طور پر تجزیہ کرنا
ایک ہی HTTP/1.1 فیلڈ میں keep-alive اور Upgrade ملنے پر ہر Connection اختیار کو بڑے چھوٹے حروف کی تمیز کے بغیر تجزیہ کریں۔
یہ اقدار ایک ہی انداز کی متبادل ہجے نہیں ہیں:
Connection: Upgrade
Connection: keep-alive, Upgrade
دوسری دو کنکشن اختیارات کی فہرست دیتی ہے۔ HTTP، Connection کو کوما سے الگ کی گئی فہرست کے طور پر متعین کرتا ہے، اور اختیارات کے نام بڑے چھوٹے حروف کی تمیز نہیں کرتے۔ پوری قدر کو درست Upgrade سٹرنگ سے موازنہ کرنے والا کوڈ اس اختیار والی درست فہرست کو نظر انداز کر دیتا ہے۔
عام فارورڈنگ کے لیے، HTTP واسطہ آنے والی فیلڈ کا تجزیہ کرتا ہے، اپنے اختیارات سے نامزد فیلڈز ہٹاتا ہے، پھر Connection کو خود ہٹا دیتا ہے یا اگلے کنکشن کے لیے واسطے کے اپنے کنٹرول اختیارات سے بدل دیتا ہے۔
صرف ہارڈ کوڈ شدہ Keep-Alive فیلڈ ہٹانا کافی نہیں۔ ایک پیغام فہرست میں کنکشن سے مخصوص کوئی اور فیلڈ نامزد کر سکتا ہے، اور وہ فیلڈ عام فارورڈنگ میں نہیں بہنا چاہیے۔
پروٹوکول اپ گریڈ کی حمایت کے لیے دونوں کنکشنوں اور نئے پروٹوکول کو دانستہ طور پر سنبھالنا ضروری ہے۔ آنے والے Upgrade ہیڈرز کو آنکھیں بند کر کے کاپی کرنا اس منتقلی کا نفاذ نہیں ہے۔
جب ایک براؤزر کام کرے اور دوسرا ناکام ہو، تو واسطے کے دونوں طرف موجود حقیقی فیلڈ اقدار کا موازنہ کریں۔ ایک ٹوکن اور دو ٹوکن کی فہرست کے درمیان فرق براؤزر کو دوسرے براؤزر کی درست فارمیٹنگ کی نقل کرنے کی ضرورت کے بغیر تجزیہ کار کی خرابی ظاہر کر سکتا ہے۔
یہ اُن HTTP پیغامات سے متعلق ہے جن کا پراکسی تجزیہ کرتا ہے۔ عام HTTPS CONNECT سرنگ اُس پراکسی کو خفیہ کردہ ویب سائٹ کی Connection فیلڈ ظاہر نہیں کرتی۔