Jint တွင် PAC အကဲဖြတ်ခြင်း- ပျောက်နေသော အကူဖန်ရှင်များနှင့် လမ်းကြောင်းရလဒ်များ
FindProxyForURL ကို ခေါ်ခြင်းသည် အဆင့်တစ်ဆင့်သာဖြစ်သည်- host သည် PAC အကူဖန်ရှင်များကို အကောင်အထည်ဖော်ရမည်၊ လုပ်ဆောင်မှုကို ကန့်သတ်ရမည်၊ ပြန်ပေးသော လမ်းကြောင်းစာရင်းကို အနက်ဖွင့်ရမည်။
PAC အကဲဖြတ်နေစဉ် dnsResolve သို့မဟုတ် myIpAddress မရှိဟု Jint က အစီရင်ခံပါက JavaScript ပိုတင်ခြင်းသည် ဖြေရှင်းနည်းဖြစ်ချင်မှ ဖြစ်မည်။ ထို PAC အကူဖန်ရှင်များသည် host application က ပံ့ပိုးသော ပတ်ဝန်းကျင်တွင် ပါဝင်သည်။
FindProxyForURL ကို မခေါ်မီ
ပံ့ပိုးသော PAC အကူဖန်ရှင် အစုနှင့် လိပ်စာအမျိုးအစားများကို ရွေးပြီး ထို အကူဖန်ရှင်များကို engine တွင် ထည့်သွင်းပါ။ ၎င်းတို့၏ စာချုပ်များကို ထိန်းသိမ်းပါ- dnsResolve သည် hostname ကို လက်ခံသည်၊ myIpAddress သည် argument မလက်ခံဘဲ local interface မူဝါဒ လိုအပ်သည်၊ shExpMatch သည် shell ပုံစံ ပုံစံများကို အသုံးပြုသည်။ အဆင်ပြေသော တန်ဖိုးကို ပြန်ပေးသော stub သည် မှားသော လမ်းကြောင်းကို တိတ်တဆိတ် ရွေးနိုင်သည်။
ထို ကနဦးပြင်ဆင်မှု ပြီးပါက Jint 4.4.0 တွင် အဓိကခေါ်ဆိုမှုသည် ဤသို့ ဖြစ်နိုင်သည်-
var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
"FindProxyForURL",
destinationUrl,
destination.IdnHost
).AsString();engine သည် ပြင်ဆင်ထားသော Jint.Engine ဖြစ်သည်၊ pacSource သည် ရယူထားသော PAC ပရိုဂရမ် ဖြစ်သည်။ destination.IdnHost သည် port သို့မဟုတ် လမ်းကြောင်း မပါဘဲ hostname ကို ပေးသည်။ ဤခေါ်ဆိုမှုသည် PAC ကို မရယူသလို proxy ချိတ်ဆက်မှုကိုလည်း မဖွင့်ပါ။
ခေါ်ဆိုပြီးနောက်
PROXY proxy.example:8080; DIRECT ကဲ့သို့ ရလဒ်ကို အစဉ်လိုက် လမ်းကြောင်း ကိုယ်စားလှယ်လောင်းများနှင့် အရန်စာရင်း အဖြစ် အနက်ဖွင့်ပါ။ ထို စာတန်းတစ်ခုလုံးကို proxy URL အဖြစ် ပေးပို့ခြင်းသည် ၎င်း၏ အဓိပ္ပာယ်ကို ဆုံးရှုံးစေသည်။ အကဲဖြတ်မှု မအောင်မြင်ခြင်းကို ရှင်းလင်းသော DIRECT ရလဒ်နှင့် ခွဲခြားထားပါ။
၎င်း အလုပ်လုပ်နေစဉ်
Jint ၏ ကြာချိန်၊ ထုတ်ပြန်ချက်၊ မှတ်ဉာဏ်နှင့် ပယ်ဖျက်မှု ကန့်သတ်ချက်များကို ပြင်ဆင်ပြီး လိုအပ်သော host ဖန်ရှင်များကိုသာ ဖော်ထုတ်ပါ။ DNS ခေါ်ဆိုမှုများကို သီးခြား ကန့်သတ်ပါ- JavaScript လုပ်ဆောင်မှု စစ်ဆေးချက်များသည် ကြိုက်သလို ပိတ်ဆို့နေသော host ခေါ်ဆိုမှုကို ရပ်တန့်နိုင်စေမည် မဟုတ်ပါ။ engine တစ်ခုသို့ ဝင်ရောက်မှုကို အစဉ်လိုက်ပြုလုပ်ပါ သို့မဟုတ် တစ်ပြိုင်နက် အလုပ်များအတွက် သီးခြား ပိုင်ဆိုင်သော instance များ ပေးပါ၊ engine များသည် တစ်ပြိုင်နက် အသုံးပြုရန် လုံခြုံသည်မဟုတ်ပါ။
browser ၏ PAC အကောင်အထည်ဖော်မှုများသည် အကူဖန်ရှင် တိုးချဲ့မှုများနှင့် ၎င်းတို့ ဖော်ထုတ်သော URL အသေးစိတ်များတွင် ကွဲပြားနိုင်သည်၊ အထူးသဖြင့် HTTPS အတွက်။ နမူနာရလဒ်တစ်ခုနှင့် ကိုက်ညီခြင်းသည် browser ၏ လမ်းကြောင်းသတ်မှတ်မှု အပြုအမူနှင့် ကိုက်ညီခြင်းထက် နည်းသည်။