HTTP Redirect များ၏ လုပ်ဆောင်ပုံနှင့် Location Header ၏ အခန်းကဏ္ဍ
HTTP redirect (ပြန်ညွှန်ခြင်း) သည် ဝဘ်ဆာဗာတစ်ခုမှ ဘရောက်ဆာ သို့မဟုတ် ကလိုင်းယင့်ထံသို့ လက်ရှိတောင်းဆိုထားသော URL အစား အခြား URL တစ်ခုသို့ ပြောင်းလဲသွားရောက်ရန် ညွှန်ကြားသည့် လုပ်ငန်းစဉ်ဖြစ်သည်။ ဤလုပ်ငန်းစဉ်တွင် Location header သည် အဓိကကျသော အခန်းကဏ္ဍမှ ပါဝင်ပြီး ၎င်းတွင် လမ်းကြောင်းပြောင်းရမည့် ပစ်မှတ် URL တန်ဖိုး ပါရှိသည်။
ဝဘ်ဆာဗာများသည် တုံ့ပြန်မှုအခြေအနေကုဒ် (Status Code) အမျိုးမျိုးကို အသုံးပြု၍ လမ်းကြောင်းပြောင်းခြင်း အမျိုးအစားကို သတ်မှတ်ပေးသည်။ ၎င်းတို့ကို အောက်ပါအတိုင်း အဓိကခွဲခြားနိုင်သည် -
- အမြဲတမ်း (Permanent Redirects): အခြေအနေကုဒ် 301 နှင့် 308 တို့သည် တောင်းဆိုထားသော အရင်းအမြစ်ကို အမြဲတမ်း ရွှေ့ပြောင်းလိုက်ပြီဖြစ်ကြောင်း ဖော်ပြသည်။
- ယာယီ (Temporary Redirects): အခြေအနေကုဒ် 302, 303 နှင့် 307 တို့သည် တောင်းဆိုထားသော အရင်းအမြစ်ကို ယာယီသာ ရွှေ့ပြောင်းထားခြင်းဖြစ်ကြောင်း ဖော်ပြသည်။
ဤတူးလ်သည် အသုံးပြုသူ ပေးပို့လိုက်သော စာသားများကိုသာ အခြေခံ၍ ခွဲခြမ်းစိတ်ဖြာပေးခြင်းဖြစ်ပြီး ဝဘ်ဆိုက်များသို့ တိုက်ရိုက်ဝင်ရောက်ကြည့်ရှုခြင်း၊ ချိတ်ဆက်နိုင်စွမ်း ရှိမရှိ စမ်းသပ်ခြင်း၊ ခေါင်းစီးများ၏ စစ်မှန်မှုကို စစ်ဆေးခြင်း သို့မဟုတ် ဘရောက်ဆာ၏ လုပ်ဆောင်ပုံများကို တိုက်ရိုက်စမ်းသပ်ခြင်းမျိုး ပြုလုပ်မည်မဟုတ်ပါ။
Relative နှင့် Absolute URLs များအား ဖြေရှင်းခြင်း
ပြန်ညွှန်သည့် လမ်းကြောင်းများတွင် Location header တန်ဖိုးကို Absolute URL (ဥပမာ https://example.com/page) သို့မဟုတ် Relative URL (ဥပမာ /signin) ပုံစံဖြင့် ရေးသားလေ့ရှိသည်။
Relative URL တန်ဖိုးများကို အသုံးပြုထားပါက ၎င်းတို့ကို အပြည့်အစုံဖြစ်စေရန် သက်ဆိုင်ရာ hop ၏ URL နှင့် နှိုင်းယှဉ်တွက်ချက်ပြီး ဖြေရှင်းရသည်။ ပထမဆုံး တုံ့ပြန်မှုတွင် Relative URL ကို အသုံးပြုထားပါက ၎င်းကို စတင်ဖြေရှင်းရန်အတွက် "URL စတင်နေသည် (ချန်လှပ်ထားနိုင်သည်)" (Starting URL) ကို ထည့်သွင်းပေးရန် လိုအပ်သည်။ နောက်ဆက်တွဲ ဖြစ်ပေါ်လာသော hops များအတွက်မူ ယခင်အဆင့်မှ ရရှိလာသော "ရည်မှန်းဖြေရှင်းခဲ့သည်။" URL ကို အခြေခံ၍ ဆက်လက်တွက်ချက်သွားမည် ဖြစ်သည်။
ပြန်ညွှန်ခြင်းတွင် ကြုံတွေ့ရတတ်သော ပြဿနာများ
ရှုပ်ထွေးသော ပြန်ညွှန်မှု ကွင်းဆက်များကို ခွဲခြမ်းစိတ်ဖြာသည့်အခါ အောက်ပါ ပြဿနာများကို တွေ့ရှိနိုင်သည် -
- ဒကာ (Redirect Loop): လမ်းကြောင်းပြောင်းမှုများသည် ပြီးဆုံးခြင်းမရှိဘဲ တစ်ခုနှင့်တစ်ခု အပြန်အလှန် ပြန်ညွှန်နေသည့် အခြေအနေဖြစ်သည်။
- HTTPS အဆင့်နှိမ့်ချသည်။ (HTTPS Downgrade): လုံခြုံစိတ်ချရသော HTTPS ချိတ်ဆက်မှုမှ လုံခြုံမှုမရှိသော HTTP ချိတ်ဆက်မှုသို့ လမ်းကြောင်းပြောင်းသွားသည့် အခြေအနေဖြစ်သည်။
- ပျောက်နေသည် Location: ပြန်ညွှန်သည့် အခြေအနေကုဒ် ပါရှိသော်လည်း သွားရမည့် လမ်းကြောင်းဖြစ်သော
Locationheader ပျောက်ဆုံးနေခြင်း ဖြစ်သည်။ - Location မမှန်ကန်ပါ: ပေးထားသော
Locationheader တန်ဖိုးသည် မှန်ကန်သော ပုံစံမဟုတ်ခြင်း ဖြစ်သည်။
ထည့်သွင်းမှု သတ်မှတ်ချက်များနှင့် ကန့်သတ်ချက်များ
ဤတူးလ်ကို အသုံးပြုရန်အတွက် အောက်ပါ သတ်မှတ်ချက်များကို လိုက်နာရန် လိုအပ်သည် -
- အမြင့်ဆုံး စာလုံးအရေအတွက်: ထည့်သွင်းနိုင်သော အမြင့်ဆုံး စာလုံးအရေအတွက်မှာ ၁၀၀,၀၀၀ (100,000 characters) ဖြစ်သည်။
- အမြင့်ဆုံး Hops အရေအတွက်: ခြေရာခံမှုတစ်ခုလျှင် အများဆုံး ၅၀ (50 hops) အထိသာ လက်ခံသည်။
- ထည့်သွင်းမှု ပုံစံများ: ဆက်တိုက်ဖြစ်ပေါ်နေသော HTTP တုံ့ပြန်မှု ခေါင်းစီးတုံးများ သို့မဟုတ် စတင်သည့် URL နှင့်အတူ
301 /newနှင့်200ကဲ့သို့သော စာကြောင်းများ သို့မဟုတ် အရင်းအမြစ်-အခြေအနေ-ပစ်မှတ် စာကြောင်းများကို ထည့်သွင်းနိုင်သည်။
အကယ်၍ ထည့်သွင်းမှု မမှန်ကန်ပါက ယခင်ပြသထားသော ရလဒ်များအားလုံးကို ရှင်းလင်းမည်ဖြစ်ပြီး သက်ဆိုင်ရာ အမှားသတင်းစကားများကို ပြသမည်ဖြစ်သည်။
ကိုယ်ရေးအချက်အလက် လုံခြုံမှုနှင့် ဒေတာစီမံဆောင်ရွက်မှု
သင်ကူးထည့်လိုက်သော URLs များနှင့် ခေါင်းစီးများအားလုံးကို သင့်စက်တွင်းရှိ ဘရောက်ဆာ (Browser) ထဲတွင်သာ တိုက်ရိုက်ခွဲခြမ်းစိတ်ဖြာခြင်း ဖြစ်သည်။ မည်သည့်ဒေတာကိုမျှ ပြင်ပဆာဗာသို့ အပ်လုဒ်လုပ်ခြင်း သို့မဟုတ် သိမ်းဆည်းခြင်း ပြုလုပ်မည်မဟုတ်ပါ။
မကြာခဏမေးလေ့ရှိသော မေးခွန်းများ (FAQ)
မည်သည့်ခြေရာခံဖော်မတ်များကို ကူးထည့်နိုင်သနည်း။
HTTP တုံ့ပြန်မှု ခေါင်းစီးတုံးများကို ဆက်တိုက်ကူးထည့်ပါ သို့မဟုတ် URL 301 /new နှင့် 200 ကဲ့သို့သော စာကြောင်းများဖြင့် နောက်မှလိုက်သော 200 ကိုသုံးပါ။ အရင်းအမြစ်-အခြေအနေ-ပစ်မှတ်လိုင်းများ အပြည့်အစုံကိုလည်း လက်ခံပါသည်။
ဆက်စပ် Location တန်ဖိုးများကို မည်သို့ဖြေရှင်းသနည်း။
/signin ကဲ့သို့သော တန်ဖိုးတစ်ခုကို URL နှင့် ဆန့်ကျင်ဘက်တွင် ဖြေရှင်းထားသည်။ ပထမတုံ့ပြန်ချက်သည် ဆွေမျိုး Location ကိုအသုံးပြုသောအခါ စတင်သည့် URL ကို ထည့်ပါ။ နောက်ပိုင်းတွင် hops များသည် ယခင်ဖြေရှင်းထားသော ပစ်မှတ်ကို အသုံးပြုသည်။
ဤကိရိယာသည် URLs ကို ဝင်ကြည့်ခြင်း သို့မဟုတ် အတည်ပြုပါသလား။
နံပါတ်၊ ၎င်းသည် သင်ထည့်ထားသော စာသားကိုသာ ပိုင်းခြားစိတ်ဖြာပါသည်။ ဆိုက်တစ်ခုသို့ရောက်ရှိနိုင်သည်ရှိမရှိ၊ ခေါင်းစီးများသည် အစစ်အမှန်ဟုတ်မဟုတ်၊ သို့မဟုတ် ဘရောက်ဆာတစ်ခုသည် တူညီသောကွင်းဆက်အတိုင်း လိုက်နေမည်ကို မစမ်းသပ်ထားပေ။