Web server ဆိုတာ user တွေရဲ့ request တွေကို HTTP မှတစ်ဆင့် files (web pages) အနေနဲ့ response ပြန်လုပ်ပေးပါတယ်။ ပိုပြီးတော့ ရှင်းအောင် ပြောရမယ်ဆိုရင် HTTP requests တွေကို contents တွေအနေနဲ့ ပြန် respond လုပ်ပေးတဲ့ internet server လို့ လဲပြောလို့ရတယ်။

Web server ဆိုတာလည်း computer တစ်လုံးပဲ၊ သူ့ထဲမှာမှ web server software ထည့်ထားတယ်။ ပြီးတော့ တစ်ခြား data တွေပါတယ် (project ထည့်ထားတယ်ဆို သက်ဆိုင်ရာ project code တွေပေါ့)။ အဲ့ဒီ computer ကို Internet နဲ့ချိတ်ဆက်ထားပြီးတော့ တစ်ခြား သူ့လိုပဲ internet နဲ့ ချိတ်ဆက်ထားတဲ့ devices တွေအတွက် physical data တွေ interchange လုပ်ဖို့ support ပေးထားတယ်။ web address URLs နဲ့ HTTP protocol (browser တွေက web page တွေမြင်နိုင်ဖို့အတွက်) တွေကို နားလည်ဖို့အတွက် HTTP server software လည်း ထည့်ထားတယ်။

Process Flow ကို ယေဘုယျအားဖြင့် ပြောရမယ်ဆိုရင် browser ကနေ web server ပေါ်တင်ထားတဲ့ file တစ်ခုကို ကြည့်ချင်တယ်ဆိုပါစို့၊ HTTP နဲ့ request လုပ်လိုက်တယ်၊ အဲ့ဒီ request က web server ပေါ်ရောက်လာမယ်။ web server ပေါ်မှာရှိတဲ့ HTTP server software ကနေတစ်ဆင့် ဝင်လာတဲ့ request ကို accept လုပ်တယ်၊ request လုပ်လိုက့်တဲ file ကိုရှာတယ်၊ မရှိရင် 404 ရှိရင်လည်း အဲ့ဒီ file ကို HTTP ကနေတစ်ဆင့် browser ကို ပြန်ပို့တယ်။

ဒီထက် ပိုပြီး ထဲထဲဝင်ဝင် သိချင်တယ်ဆိုရင်

ပထမဆုံးအနေနဲ့ hosting provider ကောင်းကောင်းရွေးချယ်တတ်ဖို့လိုပါတယ်။

ကိုယ်ပိုင် web server လည်း ထောင်လို့ရပါတယ်။ လိုအပ်တဲ့ software တွေနဲ့ project files တွေသွင်းပြီးတော့ပေ့ါ။ ဒါပေမဲ့ ထင်သလောက်လွယ်တဲ့ အရာတော့ မဟုတ်ပါဘူး၊ ဘာလို့လဲဆိုတော့ web server တစ်ခုက

  • အမြဲတမ်း up & running ဖြစ်နေရမယ်။
  • အမြဲတမ်း internet နဲ့ ချိတ်ဆက်ထားနိုင်ရမယ်။
  • IP address က fixed ဖြစ်နေရမယ်။
  • Maintenance အမြဲရှိနေရမယ်။
    ဆိုတဲ့အတွက် ကိုယ့်ဘာသာ ထောင်ထားတာထက်စာရင် quality & support ကောင်းပြီး ဈေးသင့်တော်တဲ့ hosting provider တစ်ခုကနေ ဝယ်လိုက်တာပိုကောင်းပါတယ်။

ဒုတိယ ကတော့ HTTP အကြောင်းပါ။ (Hypertext Transfer Protocol)

သူ့ရဲ့ long form အတိုင်းပဲ devices နှစ်ခုကြားထဲမှာ hypertext (link လုပ်ထားတဲ့ web documents) တွေကို ဘယ်လို transfer လုပ်မလဲ ဆိုတာကို specify လုပ်ပါတယ်။ HTTP က textual , stateless protocol တစ်ခုဖြစ်ပါတယ်။ Textual ဖြစ်တယ်ဆိုတာက plain-text & human readable ဖြစ်တာကိုပြောတာ၊ stateless ဖြစ်တယ်ဆိုတာက ကျ ဘယ် state ကိုမှ သိမ်းထားခြင်းမရှိလို့ ၊ ဘယ် transaction ပဲဖြစ်ဖြစ် ဘယ် input ပဲဖြစ်ဖြစ် သိမ်းထားခြင်းမရှိဘူး။ HTTP အကြောင်းကတော့ ဒီထက်ပိုပြီး ရှိသေးပေမဲ့ ဒီ topic မှာ ဒါတွေသိထားရင်လုံလောက်တယ်လို့ထင်ပါတယ်။

  • Client side ကပဲ HTTP request လုပ်လို့ရတယ်။ server က client request ကို respond လုပ်ပေးရမယ်။
  • Client side က HTTP နဲ့ request လုပ်တော့မယ်ဆို URL provide လုပ်ပေးရမယ်။
  • Web server က ဝင်လာသမျှ request ကို respond လုပ်ရမယ်။ (fail ဖြစ်တယ်ဆိုရင်တောင် error msg) ပြပေးရမယ်။

Web server မှာ ရှိတဲ့ HTTP server က ဝင်လာတဲ့ request တွေကို process & respond လုပ်ဖို့အတွက် အဓိကပဲ။

  • Request တစ်ခုလက်ခံလိုက်ပြီဆိုတာနဲ့ URL နဲ့ match ဖြစ်တဲ့ file ရှိလားမရှိလားစစ်တယ်။
  • ရှိတယ်ဆိုရင် browser ကို return ပြန်လုပ်တယ်၊ မရှိလို့ file build လုပ်ရမယ့် process ဆိုလဲ build လုပ်ပြီး return ပြန်တယ်။
  • Process နှစ်ခုလုံး လုပ်မရဘူးဆိုလည်း Error Message return ပြန်တယ်။

တတိယတစ်ခုအနေနဲ့ကတော့ အားလုံးသိလောက်မယ်ထင်တယ်။ အများကြီး mention မလုပ်တော့ပါဘူး။

Web server တွေက static content ရော dynamic content ရော serve လုပ်ပေးနိုင်တယ်။

Static content ဆိုတာက host လုပ်ထားတဲ့ရှိပြီးသား ဖိုင် ကို ပဲ ဘာမှပြောင်းလဲခြင်းမရှိဘဲ ရှိရင်းစွဲ အတိုင်း ပြန်ပြတာ၊ အဲ့ဒါကြောင့်မို့လဲ static လို့ခေါ်တာ။

Dynamic content ဆိုတာက ကျ application ဆန်ဆန် content မျိုးတွေ၊ database တွေဘာတွေပါတယ်။ request လုပ်လိုက်ပြီဆို logical changes တွေ physical changes လုပ်ပြီးမှ client ဆီကို return ပြန်တာမျိုးတွေ။

ဒီလောက်ဆိုရင် web server ရဲ့ ဆိုလိုရင်းနဲ့ ဘယ်လိုအလုပ်လုပ်တယ်ဆိုတာနားလည်လောက်ပြီထင်ပါတယ်။ နောက်နေ့တွေမှာ အသုံးများတဲ့ web servers အကြောင်းတွေထပ်ရေးပေးသွားပါမယ်။