curl -N သည် proxy ကို buffering ရပ်ရန် မပြောနိုင်ပါ
curl ၏ output အလံသည် တုံ့ပြန်မှုလမ်းကြောင်းတစ်ခုလုံးကို ပြောင်းလဲသည်ဟု မယူဆဘဲ buffering သည် client၊ ကြားခံ သို့မဟုတ် ပြသမှုဘက်တွင် ဘယ်နေရာ၌ ရှိသည်ကို ရှာဖွေပါ။
curl -N သို့မဟုတ် --no-buffer သည် curl ၏ output stream buffering ကို ပိတ်ပါသည်။ proxy သို့မဟုတ် server ၏ buffering မူဝါဒကို မပြောင်းလဲဘဲ နောက်ကျနေသော output ကို စစ်ဆေးရန် အထောက်အကူဖြစ်နိုင်သည်။
curl --proxy http://proxy.example:8080 --noproxy '' --no-buffer --max-time 30 https://example.com/streamအများပြည်သူ proxy ဖြင့် နှိုင်းယှဉ်ရန် HTTP proxy စာရင်းမှ HTTP endpoint တစ်ခုကို ရွေးပါ။ သင့်အစစ်အမှန် stream URL ကို အသုံးပြုပြီး ရည်ရွယ်ထားသော ကန့်သတ်ချက်ကို ရွေးပါ။ ဗလာ bypass စာရင်းသည် ဤနှိုင်းယှဉ်မှုကို ရွေးထားသော proxy လမ်းကြောင်းပေါ်တွင် ထားရှိသည်။
ရောက်ရှိမှု၊ ကုဒ်ဖော်မှုနှင့် ပြသမှု
server သည် တစ်ဆင့်ချင်း byte များ ထုတ်ပေးနိုင်သည်၊ ကြားခံသည် ၎င်းတို့ကို စုဆောင်းနိုင်သည်၊ client library သည် body တစ်ခုလုံးကို ဖတ်နိုင်သည်၊ browser သည် ပြသမှုကို ရွှေ့ဆိုင်းနိုင်သည်။ သင်လမ်းကြောင်းကို ထိန်းချုပ်သည့်နေရာတွင် ပထမဆုံး အသုံးဝင်သော byte များနှင့် နောက်ဆက်တွဲ တိုးတက်မှုကို နှိုင်းယှဉ်ပါ။ ပန်းချီဆွဲချိန်နှင့် server ၏ စုစုပေါင်းကြာချိန်သည် body မည်သည့်အချိန်ရောက်လာသည်ကို မဖော်ပြပါ။
Guzzle တွင် streaming နှင့် body အသုံးပြုမှုကို သီးခြားစစ်ဆေးပါ။ ချုံ့ခြင်းသည် ကုဒ်ဖော်သည့်အဆင့်ကို ထည့်သည်။ ကုဒ်ဖော်ပြီး output ပေါ်လာသည့်အချိန် ပြောင်းလဲမှုသည် proxy သည် buffering အစိတ်အပိုင်းဖြစ်သည်ဟု သူ့အလိုလို သက်သေမပြပါ။
ကြားခံက ဘာမြင်သလဲ
အလင်းမကြည်သော CONNECT proxy သည် အတွင်းပိုင်း HTTPS တုံ့ပြန်မှုများကို သာမန် HTTP အဖြစ် ခွဲခြမ်းစိတ်ဖြာနိုင်မည်မဟုတ်ပါ။ ခွင့်ပြုထားသော TLS စစ်ဆေးရေးဝန်ဆောင်မှုတွင် မြင်နိုင်စွမ်း ကွဲပြားသည်၊ ထို့ကြောင့် HTTPS တစ်ခုတည်းဖြင့် စစ်ဆေးမှုမရှိကြောင်း သက်သေမပြနိုင်ပါ။
စောင့်ဆိုင်းသည့်အဆင့်ကို ဖော်ထုတ်ပြီးနောက် ထိုအစိတ်အပိုင်းက ပံ့ပိုးသော streaming ထိန်းချုပ်မှုများကို အသုံးပြုပါ။ reverse-proxy ညွှန်ကြားချက်များသည် forward proxy တွင် အလိုအလျောက် မသက်ရောက်ပါ; curl ၏ output အလံသည် လမ်းကြောင်း၏ မိမိအပိုင်းကိုသာ ပြောင်းလဲသည်။