curl ပရောက်စီ အချိန်ကုန်ခြင်း — ပျက်ကွက်သည့်အဆင့်ကို ရှာခြင်း
ပရောက်စီချိတ်ဆက်မှု၊ tunnel ညှိနှိုင်းမှု၊ TLS နှင့် ရပ်တန့်သွားသောတုံ့ပြန်မှုကို ခွဲပြီး curl အချိန်ကန့်သတ်ချက်များဖြင့် ပြဿနာရှာပါ။
curl ၏ အသေးစိတ်အထွက်တွင် နောက်ဆုံးပြီးဆုံးသည့်လုပ်ဆောင်ချက်ကို ရှာပါ။ “ပရောက်စီနှင့် ချိတ်ဆက်ပြီး၊ CONNECT တုံ့ပြန်မှုမရှိ” ဟူသည် “ပရောက်စီ အချိန်ကုန်သွားသည်” ထက် ပြဿနာကို ပိုကျဉ်းမြောင်းစေသည်။
အချိန်ကန့်သတ်ထားသည့်တောင်းဆိုမှုကို သုံးပြီး စက်တွင်းနမူနာအစား မိမိ HTTP ပရောက်စီကို ထည့်ပါ။ နှိုင်းယှဉ်ရန် အခြား endpoint များကို HTTP proxy စာရင်းမှ ရနိုင်သည်။
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/--connect-timeout 5 သည် သက်ဆိုင်ရာရှာဖွေမှုနှင့် handshake များအပါအဝင် ချိတ်ဆက်တည်ဆောက်မှုတစ်ခုလုံးကို အချိန်ဘတ်ဂျက်တစ်ခု ပေးသည်။ အဆင့်တိုင်းကို ငါးစက္ကန့်စီ မပေးပါ။ --max-time 15 သည် တည်ဆောက်ပြီးနောက် ဒေတာလွှဲချိန်အပါအဝင် လုပ်ဆောင်မှုတစ်ခုလုံးကို ကန့်သတ်သည်။
| တိုးတက်မှု ရပ်သည့်နေရာ | ဆက်လက်စစ်ဆေးရန် |
|---|---|
| ပရောက်စီသို့ မချိတ်ဆက်နိုင် | ပရောက်စီ hostname ဖြေရှင်းမှု၊ နားထောင်နေသည့် port၊ လမ်းကြောင်းနှင့် firewall မူဝါဒ။ |
| ပရောက်စီချိတ်ပြီး၊ tunnel တုံ့ပြန်မှုမရှိ | ပရောက်စီဝန်၊ အထောက်အထားစစ်ဆေးမှုညှိနှိုင်းခြင်း၊ ဝင်ခွင့်မူဝါဒနှင့် ပရောက်စီမှ ပစ်မှတ်သို့ ရောက်နိုင်မှု။ |
| tunnel လက်ခံပြီး၊ TLS မပြီး | ပစ်မှတ်ရောက်နိုင်မှု၊ TLS ညှိနှိုင်းမှုနှင့် စီမံထားသော traffic ကြားဖြတ်ဖမ်းယူမှု။ |
| ပစ်မှတ် header များရောက်ပြီး၊ body ရပ် | မူလဆာဗာ၏ လွှဲပြောင်းပုံ၊ ကြားခံများ၏ buffer သိမ်းမှုနှင့် အက်ပ်က ရည်ရွယ်ချက်ရှိရှိ တိတ်နေသလား။ |
handshake အစီအစဉ်အတွက် CONNECT က HTTPS ကို သယ်ဆောင်ပုံ ကို ကြည့်ပါ။ ချိတ်ဆက်ဘတ်ဂျက်အနီး ရပ်ခြင်းက တည်ဆောက်မှုကို၊ နောက်မှ စုစုပေါင်းကန့်သတ်ချိန်တွင် ရပ်ခြင်းက မပြီးသည့်လွှဲပြောင်းမှုကို ညွှန်သည်။ အချိန်နှင့် အစီအစဉ်ကို တွဲကြည့်ပါ။ အချိန်တစ်ခုတည်းက အစိတ်အပိုင်းကို မသတ်မှတ်နိုင်ပါ။ curl build အလိုက် log စာသားကွာသည်။ TCP port ဖွင့်နေရုံဖြင့် CONNECT အလုပ်လုပ်ကြောင်း မပြနိုင်ပါ။
တစ်ဖက်ကို မပြောင်းဘဲထားပါ
ခွင့်ပြုထားသော တိုက်ရိုက်လမ်းကြောင်းမှ ပစ်မှတ်တူကို နှိုင်းယှဉ်ပါ။
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/ထို့နောက် ပရောက်စီတူမှ အန္တရာယ်မရှိသည့် အခြားပစ်မှတ်ကို နှိုင်းယှဉ်ပါ။ တစ်ခုသာမအောင်မြင်လျှင် ထိုလမ်းကြောင်း သို့မဟုတ် ပစ်မှတ်မူဝါဒကို စစ်ပါ။ အားလုံး တည်ဆောက်မှုအဆင့်တူတွင် ရပ်လျှင် ပူးတွဲပရောက်စီလမ်းကြောင်းကို စစ်ပါ။ စချိန်၊ endpoint၊ ပစ်မှတ်နှင့် နောက်ဆုံးပြီးသည့်အဆင့်ကို သိမ်းပါ။ log မျှဝေမီ ဝင်ရောက်မှုအထောက်အထား၊ token၊ cookie နှင့် ကိုယ်ပိုင်အမည်များကို ဖယ်ပါ။
ချိတ်ဆက်မှုဖွင့်နေသော်လည်း အသုံးဝင်သည့်တိုးတက်မှုမရှိလျှင်
ဖိုင်လွှဲခြင်းတွင် တည်ဆောက်မှုနှင့် စုစုပေါင်းအချိန်အပြင် အနိမ့်မြန်နှုန်းကန့်သတ်ချက် လိုနိုင်သည်။
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/ဤသတ်မှတ်ချက်က ဆက်တိုက်လွှဲနှုန်း တစ်စက္ကန့် 100 byte အောက်တွင် စက္ကန့် 20 ကြာနေလျှင် ရပ်ပြီး စုစုပေါင်း စက္ကန့် 60 ကိုလည်း ထိန်းထားသည်။ အလုပ်အလိုက် တန်ဖိုးရွေးပါ။ event stream သည် ကြာရှည်တိတ်ဆိတ်နေချိန်တွင်လည်း ကောင်းနေနိုင်သဖြင့် ဒေါင်းလုဒ်စည်းကမ်းက မှားယွင်းစွာ ဖြတ်နိုင်သည်။
ကန့်သတ်ချက်အားလုံးတိုးခြင်းက လက္ခဏာပေါ်ချိန်ကို ရွှေ့ရုံသာဖြစ်သည်။ ချက်ချင်းအကြိမ်ကြိမ် ပြန်ကြိုးစားခြင်းက ဝန်များသောလမ်းကြောင်းတွင် ချိတ်ဆက်မှုတိုးစေနိုင်သည်။ စဉ်းစားထားသည့် နှိုင်းယှဉ်မှုအနည်းငယ်ဖြင့် ရောဂါရှာပါ။ နောက်ပိုင်း အက်ပ်၏ retry မူဝါဒတွင် ကိုယ်ပိုင်စုစုပေါင်းအချိန်နှင့် လုပ်ဆောင်မှုထပ်လုပ်ခြင်း၏ လုံခြုံမှုကို ထည့်စဉ်းစားရမည်။