د Node HTTP سرور عادي پروکسي غوښتنه د خپلې غوښتنې callback له لارې اداره کوي. CONNECT بله لار اخلي: سرور connect د غوښتنې، کلینټ ساکټ او head بفر سره صادروي.

هغه پېښه د HTTP تحلیل او تونل ترمنځ لاس ورکول دي. د تونل شوي ترافیک لپاره د کارولو دوام لپاره هیڅ عادي ServerResponse شی نشته.

استدلالڅه وړي
reqCONNECT غوښتنه، پشمول د هغې د مقصد واک او سرلیکونه
clientSocketکلینټ ته د بیرته تګ اړیکه
headد تونل معلومات چې Node دمخه د HTTP سرلیکونو وروسته لوستلي دي، کیدای شي خالي وي

د بایټونو د لېږلو دمخه HTTP پریکړه بشپړه کړئ

غوښتل شوي هوسټ او پورټ تایید کړئ، د پروکسي د لاسرسي او تصدیق تګلاره پلي کړئ، او پورتنۍ اړیکه جوړه کړئ. CONNECT د service.example:443 په څیر واک پیژني؛ هغه بڼه د IPv6 واکونو په پام کې نیولو سره تحلیل کړئ، نه دا چې په هر دوو ټکو کې په ړوند ډول ووېشئ.

کله چې تونل ومنل شو، بریالۍ HTTP ځواب او د هغې پای ته رسیدونکې خالي کرښه ولېږئ. بیا د کلینټ ساکټ څخه د راتلونکو بایټونو سره د دوام دمخه هر head بایټ پورته ولېږئ. د معلوماتو نوی اوریدونکی نښلول نشي کولی هغه بفر بیرته راوړي چې دمخه اداره کوونکي ته جلا سپارل شوی وي.

د Node رسمي تونلینګ بېلګه هغه لاس ورکول د serverSocket.write(head) سره ترسره کوي دمخه لدې چې د جریان دواړه لوري ونښلوي. د هغې کوچنۍ بېلګه انتقال ښیي؛ ځای پرځای شوی پروکسي هم محدودې د اړیکې هڅې، د لاسرسي کنټرول او د ژوند دورې مدیریت ته اړتیا لري.

له بریالیتوب وروسته، بایټونه د خدمت پروتوکول دي

بریالۍ CONNECT ځواب اړیکه په بایټ جریان بدلوي. که هدف HTTPS سایت وي، د هغې TLS تبادله په همدې جریان کې روانه وي. یوازې تونل کول پروکسي ته اړتیا نه لري چې د بدیل ویبسایټ سند صادر کړي.

د CONNECT د منلو دمخه، HTTP تېروتنه کولی شي د رد سبب تشریح کړي. له منلو وروسته، په جریان کې د HTTP 500 لیکل به په تونل پروتوکول کې بایټونه داخل کړي. پرځای یې، په وروستیو ناکامیو کې مناسبې اړیکې پای ته ورسوئ یا ویجاړې کړئ.

دواړه لوري د د شات فشار څخه خبر د جریان اداره سره ونښلوئ، او پریکړه وکړئ چې end، error او close پېښې ملګري څنګه پای ته رسوي. لومړنی head بفر د همدې مالکیت ماډل برخه په توګه وساتئ؛ دا د اپلیکیشن معلومات دي، نه د غورځولو وړ اضافي HTTP سرلیکونه.

اړوندې مقالې