နားလည်ထားရမယ့် အချက်
thutatech.com လို domain တစ်ခုဟာ label အပိုင်းအစတွေနဲ့ ဖွဲ့စည်းထားတာဖြစ်ပြီး ဒါကို ဖတ်တတ်တာက hosting အကြောင်းကို ပိုနားလည်စေပါတယ်။
| Piece | အဓိပ္ပာယ် |
|---|---|
| com (rightmost) | Top-level domain (TLD) — org, io, uk, mm စသဖြင့် category။ |
| thutatech (middle) | Organization က register လုပ်ပြီး ပိုင်ဆိုင်တဲ့ domain ကိုယ်တိုင်။ |
| learn (front) | Subdomain — owner က အခမဲ့ ဖန်တီးနိုင်တဲ့ domain ရဲ့ subdivision။ |
DNS ကတော့ ဒီလို human-readable name တွေကို server အစစ်တွေဆီ map ပေးတဲ့ system တစ်ခုပါ။ အသုံးများဆုံး record type နှစ်ခုကတော့ A record (name ကို IP address တစ်ခုတည့်ကြောင်း ညွှန်ပြ) နဲ့ CNAME record (name ကို name အခြားတစ်ခုဆီ ညွှန်ပြ) ဖြစ်ကြပါတယ်။ ဒီ site ရဲ့ Networking tutorial က record type အားလုံးနဲ့ resolution mechanics ကို အသေးစိတ် ဖုံးလွှမ်းထားပါတယ်။
- Registrar — domain name ကို ဝယ်ပြီး တရားဝင် ပိုင်ဆိုင်တဲ့ နေရာ (Namecheap, GoDaddy)
- Host — application (သို့) ဖိုင်တွေ တကယ် နေထိုင်တဲ့ နေရာ
- DNS — Registrar နဲ့ Host နှစ်ခုကို ချိတ်ဆက်ပေးတဲ့ တံတား
- Domain
- Organization တစ်ခုက register လုပ်ပြီး ပိုင်ဆိုင်တဲ့ name — thutatech.com ထဲက thutatech ကဲ့သို့။
- Subdomain
- Domain ရဲ့ အခမဲ့ subdivision တစ်ခု — learn.thutatech.com ထဲက learn ကဲ့သို့။
- DNS
- Domain name တွေကို IP address လို actual internet resource တွေဆီ map ပေးတဲ့ system။
ANATOMY OF A HOSTNAME
---------------------
learn . thutatech . com
| | |
subdomain domain TLD
(optional) (registered) (top-level)
REGISTRAR (you own the name) vs HOST (app lives here)
e.g. Namecheap, GoDaddy e.g. Vercel, AWS, DigitalOcean
| |
+--------- DNS record links them ----+လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
အောက်က parseHostname function က hostname string အပြည့်အစုံတစ်ခုကို subdomain, domain, TLD အပိုင်းများအဖြစ် ခွဲထုတ်ပေးပါတယ် — ဒီ lesson prose ထဲမှာ ဖြတ်သန်းလာခဲ့တဲ့ ခွဲခြားမှု အတိုင်းပါပဲ။ Hostname ကို dot တစ်ခုစီမှာ ခွဲပြီး ညာဘက်ကနေ စဉ်းစားတယ် — အနောက်ဆုံး piece ကတော့ TLD အမြဲတမ်းဖြစ်ပြီး၊ ရှေ့က piece ကတော့ domain ဖြစ်ပြီး၊ ကျန်တဲ့ label တွေ (တစ်ခုထက်ပိုနိုင်တယ်) ကတော့ subdomain အဖြစ် သတ်မှတ်ပါတယ်။
thutatech.com, learn.thutatech.com, api.staging.thutatech.com တွေကို run ကြည့်တာက pattern ကို ရှင်းရှင်းလင်းလင်း ပြပါတယ် — bare domain မှာ subdomain လုံးဝ မရှိဘူး၊ learn လို label တစ်ခုတည်းက subdomain ဖြစ်သွားတယ်၊ api.staging လို label အများကြီးက subdomain value တစ်ခုတည်းအဖြစ် ပြန်ချိတ်ပါတယ်။ ဒါက intuition တည်ဆောက်ဖို့ ရိုးရှင်းအောင် ဆောက်ထားတဲ့ parser တစ်ခုပါ၊ production-grade implementation မဟုတ်ပါ — hostname parsing အစစ်မှာ co.uk လို TLD နှစ်လုံး label ရှိတဲ့ edge case တွေ ပိုများပါသေးတယ်၊ ဒီ simple version ကတော့ မကိုင်တွယ်ပါ။
ဒီမှာ ရည်ရွယ်တာက pattern recognition ပါ — hostname တစ်ခုကို ဒီ piece သုံးခုအဖြစ် တွေ့ချက်ချင်း ခွဲမြင်တတ်ပြီဆိုရင် DNS record တွေနဲ့ hosting configuration နှစ်ခုစလုံးက ပို၍ အဓိပ္ပာယ်ရှိလာပါလိမ့်မယ်။
အတူတူ စမ်းရေးကြည့်မယ်
function parseHostname(hostname) {
const parts = hostname.split(".");
if (parts.length <= 2) {
return { subdomain: null, domain: parts[0], tld: parts[1] };
}
const tld = parts[parts.length - 1];
const domain = parts[parts.length - 2];
const subdomain = parts.slice(0, parts.length - 2).join(".");
return { subdomain, domain, tld };
}
const hosts = ["thutatech.com", "learn.thutatech.com", "api.staging.thutatech.com"];
for (const host of hosts) {
const { subdomain, domain, tld } = parseHostname(host);
console.log(`${host} -> subdomain: ${subdomain}, domain: ${domain}, tld: ${tld}`);
}thutatech.com -> subdomain: null, domain: thutatech, tld: com
learn.thutatech.com -> subdomain: learn, domain: thutatech, tld: com
api.staging.thutatech.com -> subdomain: api.staging, domain: thutatech, tld: com၅ မိနစ် စမ်းကြည့်
hosts array ထဲကို "blog.learn.thutatech.com" ဆိုတဲ့ hostname အသစ်တစ်ခု ထပ်ထည့်ပါ၊ run ပြီး subdomain value က label နှစ်ခု ပါဝင်လာတာကို confirm လုပ်ပါ။
သတိလေးတစ်ချက်
Domain ကို ဝယ်ထားလို့ hosting ပါ အလိုအလျောက် ရရှိပြီးသားလို့ ထင်ခြင်း — registrar နှင့် host ခွဲခြားမသိခြင်း
Subdomain တစ်ခုကို domain အသစ်တစ်ခုလို့ ထင်ခြင်း — DNS configuration အတွက် parent domain ပေါ်မှာသာ မှီခိုနေတာကို လျစ်လျူရှုခြင်း
MDN Glossary: Domain name — Cloud & Deployment