د Asio TLS لاس ورکولو له پیل مخکې CONNECT جوړ کړئ
د عادي HTTP پروکسي تبادلې لپاره د Asio SSL جریان لاندې پوړ وکاروئ، بیا د منل شوي تونل له لارې TLS پیل کړئ.
د عادي HTTP پروکسي له لارې د ssl::stream<tcp::socket> لپاره لومړی خام ټرانسپورټ وکاروئ، بیا ترې وغواړئ چې د منزل TLS ترسره کړي:
auto& transport = tlsStream.next_layer();
- هغه ټرانسپورټ د پروکسي هوسټ او پورټ سره ونښلوئ. کله چې د اجازه ورکړل شوي عام HTTPS منزل لپاره د پروکسي اسناد نه وي ټاکل شوي، د HTTP پروکسي لیست نوماند پایټې وړاندې کوي؛ وګورئ چې نوماند غوښتل شوی تونل اجازه ورکوي.
- CONNECT ولېږئ چې د منزل authority په ګوته کوي، لکه
api.example:443، او په ساده ټرانسپورټ بشپړ ځواب هېډرونه تحلیل کړئ. بریالی 2xx تونل پرانیزي؛ ردول بیا هم د HTTP پروکسي ځواب دی. - د منزل هوسټ نوم، اړین SNI، باوري ریښې او د peer تصدیق تنظیم کړئ، بیا په
tlsStreamد کلاینټ لاس ورکول پیل کړئ. - له بریالي TLS وروسته د اپلیکیشن لپاره د SSL جریان لوستل او لیکل وکاروئ. په دغه وخت کې لاندې پوړ مستقیم لوستل د TLS پروسس کول له پامه غورځوي.
د HTTP تحلیلګر هر پاتې برخه بل پړاو ته ورسوئ. Asio د بفر سره لاس ورکولو اضافي بڼې لري؛ د تحلیلګر ملکیت لکۍ غورځول ممکن له socket څخه لا لوستل شوې بایټې له لاسه ورکړي.
په دې ساده ډول next_layer او lowest_layer دواړه TCP ته رسېږي. ډېرې بستهبندۍ کولی شي هغوی توپیر کړي، نو هغه انټرفیس وټاکئ چې د پروکسي ریښتینی وایر پروتوکول لېږدوي. HTTPS پروکسي بله TLS مرحله زیاتوي او د دې ساده متن CONNECT تسلسل څخه بهر ده.