HTTP Status Code တွေ အကြောင်း

By: System Administrator On: Dec 02, 2019 DevOps 408

ကျွန်တော် ဒီနေ့ရေးပေးချင်တာကတော့ ကျွန်တော်တို့အနေနဲ့ Website တခုကို၀င်တဲ့အခါ တခါတလေ 404 Not Found, 500 Internal Server Error!, စသည့်ဖြင့် HTTP status code တွေကို တွေ့ရတတ်ပါတယ်။ တချို့တွေအတွက်ကတော့ ဘာတွေမှန်းမသိဖြစ်နေတတ်ပါတယ်။ ဒီတော့ ကျွန်တော် HTTP status code အကြောင်း အနည်းငယ် ရေးပေးချင်လို့ ရေးလိုက်ပါတယ်။

HTTP ဆိုတာကတော့ ဘာလဲအရင်ပြောပါရစေ။ Hypertext Transfer Protocol ပဲဖြစ်ပါတယ်။ ကျွန်တော်တို့တွေ Internet ပေါ်ကနေ တခုခုကို Communicate လုပ်တဲ့အခါမရှိမဖြစ် အရေးပါတဲ့ Foundation ကြီးလို့တောင် သတ်မှတ်ထားကြတဲ့အရာကြီးပဲ ဖြစ်ပါတယ်။ ကျွန်တော်တို့အနေနဲ့ Internet ကနေ Link တွေ Click လိုက်တာပဲဖြစ်စေ Browser ကနေ URL address ကို ခေါ်လိုက်တာပဲဖြစ်စေ ကျွန်တော်တို့ဟာ နောက်ကွယ်မှာ HTTP Request တွေကို ပြုလုပ်နေတာပဲဖြစ်ပါတယ်။ Server ကို HTTP Request ပို့လိုက်တဲ့အခါ Server အနေနဲ့ Response ပြန်ပေးရပါတယ်။ Response ပြန်ရာမှာဆိုရင်တော့ ကျွန်တော် အခုပို့စ်မှာပြောပြချင်တဲ့ HTTP Status Code တွေအကြောင်းပါလာပါပြီ။အလွယ်ပြောရရင်တော့ HTTP Status Code ဆိုတာတွေ က Server ကနေ ကျွန်တော်တို့ဆီပြန်ပြောတဲ့အခါမှာ ပါလာတဲ့ Code တွေပါပဲ။

Status Code တွေအနေနဲ့တော့ အများကြီးရှိပေမယ့် ကျွန်တော်ကတော့ ယေဘုယျ အနေနဲ့ပဲ ရှင်းလင်းပြသွားပါမှာ။

1xx - သူကတော့ 1 နဲ့ စတဲ့ Response Code ပြန်လာတာကို တွေ့ရတဲ့အခါ ကျွန်တော်တို့သိထားရမှာက သူအနေနဲ့ Request လုပ်လိုက်တဲ့အခါမှာ Server စီကို အဆင်ပြေချော့မွေ့စွာရောက်သွားပြီး နောက်လုပ်ရမယ့်အလုပ်တွေကို ဆက်လုပ်မယ်လို့ မှတ်ယူရပါတယ်။

ဥပမာ- ကျွန်တော်က မောင်မောင် ရေလို့ လှမ်းခေါ်လိုက်တဲ့အခါ မောင်မောင်က နာမည်ခေါ်သံကိုကြားသွားပြီး သူပြန်ပြောတာဖြစ်စေ၊ အမူအယာနဲ့ဖြစ်စေ ပြန်ထူးမယ့်အဆင့်ကို ဆက်လုပ်ဆောင်မယ့်အခြေအနေနဲ့ ခိုင်းနှိုင်းလို့ရပါတယ်။

2xx - ဘာကိုဆိုလိုလည်းဆိုတော့ အရာအားလုံးက အဆင်ပြေပြေနဲ့ အလုပ်လုပ်တယ်ပေါ့။ ကျွန်တော်တို့ လိုချင်တဲ့အရာကို ပြန်ပေးနိုင်တယ်လို့ သတ်မှတ်ပါတယ်။ Request လုပ်လိုက်တဲ့အရာကို Server အနေနဲ့ သိရှိပြီး Response ပြန်နိုင်တယ်လို့ သတ်မှတ်တာပါ။

ဥပမာ- မောင်မောင် နာမည်ခေါ်လိုက်တာကို သူ့နာမည်ခေါ်မှန်းသိပြီး ဗျ ဆိုပြီးပြန်ထူးလိုက်တာကို ဆိုလိုပါတယ်။

2xx Status Code တွေမှာလည် 200(OK), 201(Created), 202(Accepted), 204(No Content) အစရှိသော Status Code တွေရှိပါတယ်။

3xx - ဘာကိုဆိုလိုလည်းဆိုတော့ Redirect လုပ်ပေးခြင်းလို့ သတ်မှတ်ရပါလိမ့်မယ်။ ကျွန်တော်တို့အနေနဲ့ admin login ၀င်လိုက်သောအခါဖြစ်စေ Admin Dashboard ကိုရောသွားခြင်းဟာ 3xx Redirect ပြန်ပေးခြင်းပဲဖြစ်ပါတယ်။ Server အနေနဲ့ Redirect လုပ်ပေးလိုက်တယ်ဆိုတာကို 3xx Status Code နဲ့ပြန်ပြောပေးခြင်းပဲ ဖြစ်ပါတယ်။

ဥပမာ - ကျွန်တော်က မောင်မောင် ဆိုပြီး လှမ်းခေါ်လိုက်တာကို ကြားက ကျော်ကျော်က ကြားသွားပြီး မောင်မောင့် ကိုပြန်ခေါ်ပေးသလိုမျိုးလို့ ပြောလို့ရပါတယ်။

3xx Status Code တွေမှာဆိုရင်လည်း 301(Move Permanently), 302(Found), 303( See Other), 307(Temporary Redirect) အစရှိတဲ့ Status Code တွေရှိပါတယ်။

4xx -သူက ဘာကိုရည်ညွန်းလည်းဆိုတော့ Bad Request တွေကို ရည်ညွန်းပါတယ်။ Client Error လို့လည်း ယူဆလို့ရပါတယ်။ ကျွန်တော်တို့အနေနဲ့ အတွေ့များတာကတော့ 404 Not Found, 403 Forbidden error အစရှိသည်တို့ကို တွေ့ဖူးကြမှာ ဖြစ်ပါတယ်။ ကိုယ် Request လှမ်းခေါ်လိုက်တဲ့အရာက မရှိတာမျိုး ဖြစ်ဖြစ် နောက်ပြီး ကိုယ့်အနေနဲ့ ကြည့်ဖို့ Permission မရှိတဲ့အခါမျိုးမှာဆိုရင်တော့ 4xx Status Code တွေကို Server ကပြန်လာပေးပါလိမ့်မယ်။

ဥပမာ- မောင်မောင်လို့ လှမ်းခေါ်လိုက်တဲ့အခါ မောင်မောင် မရှိနေတာမျိုးပေ့ါဗျာ။

4xx Status Code တွေမှာဆိုရင်လည်း 400(Bad Request), 401(Unauthorized), 403(Forbidden), 404(Not Found), 406(Not Acceptable) အစရှိတဲ့ Status Code တွေရှိပါတယ်။

5xx- သူကတော့ ကျွန်တော် အတော်အမြင်ကပ်တဲ့ Status Code လို့ပြောလိုက်ချင်ပါတယ်။ မမြင်ချင်ဆုံး Status Code လို့လည်း ပြောချင်ပါသေးတယ်။ ဘာလို့လည်းဆိုတော့ သူက Server Errors တွေကို ရည်ညွန်းတဲ့ Status Code မို့လို့ပါ။ များသောအားဖြင့် ကျွန်တော်တို့ Request လုပ်လိုက်တဲ့ဟာကို Server အနေနဲ့သိပြီး Server အတွင်းမှာ Error တက်တာဖြစ်စေ Configuration မှားနေတာမျိုးကြောင့်ဖြစ်စေ Response ကောင်းမွန်စွာ မပြန်နိုင်တဲ့အခါ ပြန်လာပေးတဲ့ HTTP Status Code ပဲဖြစ်ပါတယ်။ များသောအားဖြင့် 5xx status code တွေမှာ ပြတတ်တာတွေကတော့ Bad Gateway, Server Timeout စသည့်ဖြင့် အပြများပါတယ်။

ဥပမာဗျာ - မောင်မောင်လို့ လှမ်းခေါ်တာကို မောင်မောင်က ကြားနိုင်ပေမယ့် စကားမပြောတတ်တဲ့အခါ ပြန်မထူးနိုင်သလိုမျိုးပေ့ါ။

5xx Status Code တွေမှာလည်း 500 (Internal Server Error), 501 (Not Implemented) အစရှိတဲ့ Status Code တွေရှိပါတယ်။

ဒီလောက်ဆိုရင်တော့ HTTP Status Code တွေ အကြောင်းကို အနည်းငယ်နားလည်သဘော ပေါက်သွားမယ်ထင်ပါတယ်။ ကျွန်တော်အနေနဲ့ Status Code တခုခြင်းစီ အကြောင်းကို မရှင်းပြပေးနိုင်တာကိုတော့ နားလည်ပေးစေလိုပါတယ်။ မရှင်းတာရှိရင်လည်း ကောမန့်မှာမေးလို့ရပါတယ်။

အားလုံးကို ကျေးဇူးတင်ပါတယ်။

ကောင်းသန့်လွင်

DevOps@Myanmar