CONNECT ကို ငြင်းပယ်သော proxy သည် ၎င်း၏ မူဝါဒ သို့မဟုတ် နောက်ဆက်တွဲ ချိတ်ဆက်မှု မအောင်မြင်မှုကို ရှင်းပြသည့် HTTP အမှားစာရွက်စာတမ်းကို ပြန်ပေးနိုင်သည်။ သာမန် HTTP proxy အတွက် ခွင့်ပြုထားသော စမ်းသပ်စစ်ဆေးမှုအတွက် curl သည် ထိုတောင်းဆိုချက်ကို တိုက်ရိုက်ပို့ပြီး တုံ့ပြန်မှုကို သိမ်းဆည်းနိုင်သည်:

curl --proxy '' --http1.1 --max-time 10 \
  --request CONNECT \
  --request-target service.example:443 \
  --header 'Host: service.example:443' \
  --dump-header tunnel.headers \
  --output tunnel.body \
  http://proxy.example:8080/

နောက်ဆုံး URL သည် proxy နားထောင်သူကို ညွှန်ပြသည်။ ခွင့်ပြုထားသော အများသူငှာ proxy နှိုင်းယှဉ်မှုအတွက် HTTP proxy စာရင်း သည် ထို နားထောင်သူ URL အတွက် ကိုယ်စားလှယ်လောင်းများ ပေးသည်။ --request သည် method token ကို ပေးသည်; --request-target သည် CONNECT အခွင့်အာဏာကို ပေးသည်။ ၎င်းတို့ကို ခွဲထားခြင်းက CONNECT service.example:443 HTTP/1.1 ကို ဖြစ်ပေါ်စေသည်။

အလွတ် proxy ရွေးချယ်မှုသည် curl ကို ဤစမ်းသပ်စစ်ဆေးမှုကို အခြား အမွေဆက်ခံထားသော proxy မှတစ်ဆင့် မပို့စေရန် တားဆီးသည်။ HTTP အမှားစာရွက်စာတမ်းကို ထိန်းသိမ်းနိုင်ရန် command သည် --fail ကို တမင်ချန်လှပ်ထားသည်။

အထောက်အထားမပြည့်စုံသော ကြိုးပမ်းမှုသည် စုံစမ်းနေသော မအောင်မြင်မှုသို့ မရောက်မီ 407 တွင် ရပ်တန့်နိုင်သည်။ အထောက်အထားပြည့်စုံသော တောင်းဆိုချက်ကို ပြန်လည်ဖန်တီးသောအခါ proxy ၏ ရည်ရွယ်ထားသော အထောက်အထား စီစဉ်မှုကို အသုံးပြုပါ။

ဤသည် မအောင်မြင်မှု တုံ့ပြန်မှုများကို စစ်ဆေးရန်ဖြစ်သည်။ proxy သည် 2xx ပြန်ပေးပါက ချိတ်ဆက်မှုသည် သာမန် HTTP body လွှဲပြောင်းမှုအစား ဥမင်တစ်ခု ဖြစ်လာသည်။ ဤစိတ်ကြိုက် method စမ်းသပ်စစ်ဆေးမှုသည် ဦးတည်ရာ၏ TLS ဖလှယ်မှုကို မစတင်ဘဲ လက်ခံထားသော ပွင့်နေသော ဥမင်တွင် ၎င်း၏ အချိန်ကန့်သတ်ချက်သို့ ရောက်နိုင်သည်။

အမှန်တကယ် HTTPS ရယူရန် ပုံမှန် --proxy တောင်းဆိုချက် စီးကြောင်းကို အသုံးပြုပါ။ စမ်းသပ်စစ်ဆေးမှု၏ အခြေအနေနှင့် body ကို ၎င်းတို့၏ သီးခြား proxy နှင့် ပစ်မှတ်နှင့်အတူ သိမ်းထားပါ။

ဆက်စပ်ဆောင်းပါးများ