လွယ်လွယ်ပြောရရင် HTTP status code ဆိုတာ browser က website ကို “ဒီစာမျက်နှာ ပြပါ” လို့ တောင်းလိုက်တဲ့အခါ server က ပြန်ဖြေတဲ့ အတိုကောက် နံပါတ်။ နံပါတ်တစ်ခုက စကားတစ်ခွန်းစာလောက် အဓိပ္ပာယ် သယ်ထားတယ်။

ဥပမာ ပြောရအောင် — ရဲကားတွေ၊ လုံခြုံရေးတွေ ရေဒီယိုနဲ့ စကားပြောတာ ကြားဖူးလား။ “10-4” ဆိုတာ “နားလည်ပြီ၊ လက်ခံရရှိတယ်” လို့ အဓိပ္ပာယ်ရတယ်။ စကားရှည်ရှည် ပြောမနေဘဲ နံပါတ်တိုတိုနဲ့ အမြန်ဆက်သွယ်တာ။ Browser နဲ့ server လည်း အတူတူပဲ — စာမျက်နှာတိုင်းတောင်းတိုင်း စာရှည်ကြီး ပြန်မရေးဘဲ “200”၊ “404”၊ “500” ဆိုတဲ့ နံပါတ်တိုလေးတွေနဲ့ အခြေအနေ ပြောပြတယ်။ ဒီနံပါတ်တွေကို status code လို့ခေါ်တယ်။

Status code တွေကို ပထမ ဂဏန်းအလိုက် အုပ်စု ၅ ခု ခွဲထားတယ်။ ဒီ ၅ ခုကို မှတ်ထားရင် တော်တော်များများ နားလည်သွားပြီ။

2xx — အောင်မြင်တယ် (Success)

200 OK — အရာအားလုံး အဆင်ပြေတယ်၊ တောင်းတဲ့ စာမျက်နှာ ဒီမှာပါ။ အတွေ့ရအများဆုံး code ပဲ
201 Created — အသစ်တစ်ခု ဖန်တီးပြီးသွားပြီ (ဥပမာ account အသစ် ဖွင့်တာ၊ post အသစ် တင်တာ)

3xx — တခြားနေရာ သွားပါ (Redirect)

301 Moved Permanently — ဒီစာမျက်နှာ အပြီးတိုင် ပြောင်းသွားပြီ၊ ဒီ link အသစ်ကို သွား။ Website domain ပြောင်းတဲ့အခါ သုံးတယ်
302 Found — ခဏတာ တခြားနေရာ ပို့တာ (ဥပမာ login မဝင်ရသေးရင် login စာမျက်နှာကို ပို့တာ)

4xx — မင်းဘက်က အမှား (Client Error)

400 Bad Request — တောင်းဆိုမှုကိုက မှားနေတယ်၊ server နားမလည်ဘူး
401 Unauthorized — login ဝင်ဖို့ လိုတယ် (username/password မပါဘူး ဒါမှမဟုတ် မှားနေတယ်)
403 Forbidden — login ဝင်ပြီးသားပေမယ့် ဒီစာမျက်နှာ ကြည့်ခွင့် မရှိဘူး
404 Not Found — နာမည်အကြီးဆုံး code။ တောင်းတဲ့ စာမျက်နှာ ဒီ server မှာ မရှိဘူး။ link ရိုက်တာ မှားတာ ဒါမှမဟုတ် စာမျက်နှာ ဖျက်ခံရတာ ဖြစ်နိုင်တယ်
429 Too Many Requests — ခဏခဏ အရမ်းတောင်းနေလို့ ခဏရပ်ခိုင်းတာ (rate limiting)

5xx — Server ဘက်က အမှား (Server Error)

500 Internal Server Error — server မှာ တစ်ခုခု ပျက်နေတယ်၊ ဘာပျက်မှန်း သူကိုယ်တိုင်တောင် သေချာမပြောနိုင်ဘူး
502 Bad Gateway — ရှေ့က server (ဥပမာ Cloudflare) က နောက်က server ဆီ ဆက်သွယ်လို့ မရဘူး
503 Service Unavailable — server အလုပ် များနေလို့ ဒါမှမဟုတ် ပြုပြင်နေလို့ ခဏရပ်ထားတယ်

ဒီတော့ 404 နဲ့ 500 ဘာကွာလဲဆိုတာ ရှင်းသွားပြီ — 404 က “မင်းတောင်းတာ ဒီမှာ မရှိဘူး” (မင်းဘက်က ပြဿနာ ဖြစ်နိုင်တယ်)၊ 500 က “ငါ့ဘက်မှာ တစ်ခုခု ပျက်နေတယ်” (server ဘက်က ပြဿနာ)။ Website ဖွင့်မရလို့ စိတ်ညစ်နေတဲ့အခါ ဒီနှစ်ခုကို ခွဲခြားတတ်ရင် ဘာဆက်လုပ်ရမလဲ သိသွားမယ်။

သာမန် user တစ်ယောက်အနေနဲ့ ဒီ code တွေ တွေ့ရင် ဘာလုပ်ရမလဲ။

404 တွေ့ရင် — URL ကို သေချာပြန်စစ်။ စာလုံးပေါင်း မှားနေတာ ဖြစ်နိုင်တယ်။ Google မှာ စာမျက်နှာနာမည်နဲ့ ပြန်ရှာကြည့်
403 တွေ့ရင် — login ဝင်ဖို့ လိုနေတာ ဖြစ်နိုင်တယ်။ account ပြောင်းပြီး ဝင်ကြည့်ပါ
429 တွေ့ရင် — ခဏစောင့်ပြီး ပြန်နှိပ်။ refresh ကို ဆက်တိုက် မနှိပ်နဲ့၊ ပိုဆိုးသွားမယ်
500 / 502 / 503 တွေ့ရင် — မင်းဘက်က ဘာမှ လုပ်စရာ မရှိဘူး။ ခဏစောင့်ပြီး ပြန်ဝင်ကြည့်။ နာရီဝက်လောက် ကြာနေသေးရင် site ပိုင်ရှင်ကို အကြောင်းကြား

ကိုယ်တိုင် website လုပ်တဲ့သူဆိုရင်တော့ ဒီ code တွေက အဖိုးတန်တဲ့ သဲလွန်စတွေ။ 404 အများကြီး တက်နေရင် link ပျက်တွေ ရှိနေပြီ။ 500 တက်နေရင် code မှာ bug ရှိတယ်။ 429 တက်နေရင် bot တွေ လာတိုက်နေတာ ဖြစ်နိုင်တယ်။ Log ထဲမှာ ဒီနံပါတ်တွေကို စောင့်ကြည့်တာက site ကျန်းမာရေး စစ်သလိုပဲ။

စိတ်ဝင်စားစရာ အချက်တစ်ခုက 418 ဆိုတဲ့ code လည်း တကယ်ရှိတယ် — “I’m a teapot” (ကျွန်တော်က ရေနွေးအိုးပါ)။ 1998 ခုနှစ်က April Fools’ joke အနေနဲ့ ထည့်ခဲ့တာ၊ အခုထိ standard ထဲမှာ ရှိနေတုန်းပဲ။ Programmer တွေရဲ့ ဟာသဉာဏ်ကို ပြတဲ့ သက်သေပေါ့။ တကယ့် site တွေမှာ သုံးတာ ရှားပေမယ့် API တချို့မှာ easter egg အနေနဲ့ ပြန်ပေးတတ်တယ်။

နောက်တစ်ခါ browser မှာ error စာမျက်နှာ တွေ့ရင် နံပါတ်ကို တစ်ချက် ဂရုစိုက်ကြည့်လိုက်ပါ။ အဲဒီ ဂဏန်း ၃ လုံးက server က မင်းကို ပြောနေတဲ့ စကားတိုလေးတစ်ခွန်းပဲ — ဘာဖြစ်နေလဲ၊ ဘယ်သူ့ဘက်က မှားလဲ၊ ဘာဆက်လုပ်ရမလဲ ဆိုတာ သူ ပြောပြီးသား။ ရေဒီယိုကုဒ်စကား နားလည်သွားရင် ဆက်သွယ်ရေးက ရုတ်တရက် ရှင်းသွားသလိုမျိုးပေါ့။

===