အပိုမျဉ်းကြောင်းအသစ်တစ်ခုက CONNECT ပြီးနောက် TLS ကို ချိုးဖျက်နိုင်သည်
လက်ဖြင့်ရေးထားသော ပရောက်စီချိတ်ဆက်ကိရိယာက ဥမင်တစ်ခုဖွင့်ပြီး ချက်ချင်း TLS ကုဒ်ဖော်မှု အမှားပေးသောအခါ HTTP ခေါင်းစီးဘောင်ကို စစ်ဆေးပါ။
CONNECT က 200 ပြန်ပေးပြီး TLS က ချက်ချင်း ကုဒ်မဖော်နိုင်သောအခါ လက်မှတ်များ သို့မဟုတ် စာဝှက်များ မပြောင်းမီ ချိတ်ဆက်ကိရိယာအတွင်းရှိ နယ်နိမိတ်ဘိုက်များကို စစ်ဆေးပါ။
ထုတ်လုပ်ထားသော ခွင့်ပြုချက်တန်ဖိုးသည် မျဉ်းကြောင်းအသစ်ဖြင့် အဆုံးသတ်နေပြီးဖြစ်နိုင်သည်။ နောက်ထပ် မျဉ်းအဆုံးတစ်ခု ထပ်ထည့်ခြင်းက HTTP ခေါင်းစီးများကို စောစီးစွာ အဆုံးသတ်စေပြီး ရည်ရွယ်ထားသော Host အကွက်ကို သို့မဟုတ် အခြားရိုးရိုးစာသားကို တောင်းဆိုမှု၏နောက်တွင် ချန်ထားနိုင်သည်။
အနည်းဆုံး HTTP/1.1 CONNECT တောင်းဆိုမှုသည် မျဉ်းများကြားတွင် CRLF နှင့် အဆုံးတွင် ကွက်လပ်မျဉ်းတစ်ခုကို အသုံးပြုသည်။
b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"မည်သည့် ခွင့်ပြုချက်အကွက်ကိုမဆို ထိုနောက်ဆုံး ကွက်လပ်မျဉ်းရှေ့တွင် ထားပါ၊ အတွင်း၌ မျဉ်းချိုးမှု မထည့်ပါနှင့်။ Python တွင် "\n" သည် မျဉ်းကြောင်းအသစ်ကို ကိုယ်စားပြုသည်။ backslash နှင့် n အက္ခရာ ပါဝင်သော အကြမ်းစာသားက ကိုယ်စားမပြုပါ။ ဖယ်ရှားရန် မကြိုးစားမီ ကုဒ်ပြောင်းအကူက မည်သည့်ဘိုက်များ ထုတ်လုပ်သည်ကို စစ်ဆေးပါ—အကူအဟောင်းများက မျဉ်းချိုးမှုများ ထည့်နိုင်ခဲ့သည်။
CONNECT အောင်မြင်ပြီးနောက် ကျန်ဘိုက်များသည် ဥမင်ပရိုတိုကောပိုင်ဖြစ်သည်။ လွင့်နေသော ရိုးရိုးစာသားသည် TLS ကို မျှော်လင့်နေသော လုပ်ဖော်ကိုင်ဖက်ထံ ရောက်နိုင်သည်။ အောင်မြင်သော အခြေအနေသည် မမှန်ကန်သော တောင်းဆိုမှုနောက် တန်းစီထားပြီးသား ဘိုက်များကို ပြုပြင်၍ မရနိုင်ပါ။
လက်ခံမှု နယ်နိမိတ်ကိုလည်း စစ်ဆေးပါ။ ဆော့ကက်ကို TLS သို့ မအပ်မီ ပရောက်စီတုံ့ပြန်မှု အပြည့်အစုံကို ဖတ်ပါ၊ တစ်စိတ်တစ်ပိုင်း ဖတ်ခြင်းများကို ကိုင်တွယ်ပြီး ခေါင်းစီးများကျော်လွန်၍ ဖတ်ထားသမျှကို ထိန်းသိမ်းပါ။ ဆော့ကက်ဖတ်ခြင်းတစ်ကြိမ်တွင် မက်ဆေ့ချ်တစ်ခုလုံး ပါဝင်ရန် မလိုအပ်ပါ။
ဤခွဲခြမ်းစိတ်ဖြာကိရိယာသည် သင့်ပိုင်ဆိုလျှင် တည်းဖြတ်ထားသော ဘိုက်ကိုယ်စားပြုမှုကို ကြိုးသဒ္ဒါနှင့် နှိုင်းယှဉ်ပါ။ စကားဝှက်ကို ဝှက်ထားစဉ် အရှည်များနှင့် မျဉ်းနယ်နိမိတ်များကို မြင်သာအောင် ထားပါ။ ပရောက်စီချိတ်ဆက်မှုသာ လိုအပ်သော အပလီကေးရှင်းအတွက် ထိန်းသိမ်းထားသော ချိတ်ဆက်ကိရိယာသည် ဤဘောင်ကုဒ်ကို ပိုင်ဆိုင်ရန် မလိုအပ်စေပါ။