کلائنٹ اسٹریم ریلے کرنے سے پہلے CONNECT ہیڈرز کی تجزیہ مکمل کریں
صرف درخواست لائن کے بعد ریلے کرنے والا پراکسی سرور اپنا Host ہیڈر منزل کے TLS پورٹ پر بھیج سکتا ہے۔
CONNECT درخواست لائن کے بعد بھی یہ بائٹس پراکسی کے ہی ہیں:
CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\nHost یا User-Agent کو پورٹ 443 پر بھیجنے سے منزل کو وہاں سادہ متن ہیڈر ملتے ہیں جہاں وہ TLS کی توقع کرتی ہے۔ یہ ناکامی کسی بھی سائفر کے انتخاب کے اہم ہونے سے پہلے بھی ہو سکتی ہے۔
- سیٹ اپ وقت کی حد اور ہیڈر کے حجم کی حد کے اندر خالی لائن والے ہیڈر ٹرمینیٹر تک پڑھیں اور تجزیہ کریں۔
- پراکسی کی توثیق اور منزل کی پالیسی لاگو کریں۔
- منظور شدہ ہدف کنکشن قائم کریں۔
- کامیاب CONNECT جواب بھیجیں اور ٹنل موڈ میں داخل ہوں۔
حد کے بعد کے بفر شدہ بائٹس کو مناسب اگلی حالت کے لیے محفوظ رکھیں۔ انہیں ضائع نہ کریں اور پراکسی کی درخواست ہیڈرز کو ویب سائٹ کی بعد کی درخواست نہ سمجھیں۔
کلائنٹ پر بھی جواب کی طرف یکساں ذمہ داری ہے: ٹنل شدہ پروٹوکول شروع کرنے سے پہلے کامیاب CONNECT جواب پڑھنا مکمل کریں۔ دونوں سرے اس حد پر متفق ہوں کہ اسٹریم کہاں کردار بدلتا ہے۔