د عادي HTTP پروکسي له لارې د ssl::stream<tcp::socket> لپاره لومړی خام ټرانسپورټ وکاروئ، بیا ترې وغواړئ چې د منزل TLS ترسره کړي:

auto& transport = tlsStream.next_layer();
  1. هغه ټرانسپورټ د پروکسي هوسټ او پورټ سره ونښلوئ. کله چې د اجازه ورکړل شوي عام HTTPS منزل لپاره د پروکسي اسناد نه وي ټاکل شوي، د HTTP پروکسي لیست نوماند پایټې وړاندې کوي؛ وګورئ چې نوماند غوښتل شوی تونل اجازه ورکوي.
  2. CONNECT ولېږئ چې د منزل authority په ګوته کوي، لکه api.example:443، او په ساده ټرانسپورټ بشپړ ځواب هېډرونه تحلیل کړئ. بریالی 2xx تونل پرانیزي؛ ردول بیا هم د HTTP پروکسي ځواب دی.
  3. د منزل هوسټ نوم، اړین SNI، باوري ریښې او د peer تصدیق تنظیم کړئ، بیا په tlsStream د کلاینټ لاس ورکول پیل کړئ.
  4. له بریالي TLS وروسته د اپلیکیشن لپاره د SSL جریان لوستل او لیکل وکاروئ. په دغه وخت کې لاندې پوړ مستقیم لوستل د TLS پروسس کول له پامه غورځوي.

د HTTP تحلیلګر هر پاتې برخه بل پړاو ته ورسوئ. Asio د بفر سره لاس ورکولو اضافي بڼې لري؛ د تحلیلګر ملکیت لکۍ غورځول ممکن له socket څخه لا لوستل شوې بایټې له لاسه ورکړي.

په دې ساده ډول next_layer او lowest_layer دواړه TCP ته رسېږي. ډېرې بستهبندۍ کولی شي هغوی توپیر کړي، نو هغه انټرفیس وټاکئ چې د پروکسي ریښتینی وایر پروتوکول لېږدوي. HTTPS پروکسي بله TLS مرحله زیاتوي او د دې ساده متن CONNECT تسلسل څخه بهر ده.

اړوندې مقالې