အဓိက အကြောင်းအရာ - Server
ဤစည်းမျဉ်းတွင် အချက်နှစ်ချက် ရှိသည်။
၁။ မပြောင်းလဲသည့် အစိတ်အပိုင်းများ (static components) အတွက် - "Never expire" အဖြစ် သတ်မှတ်ပေးခြင်း
၂။ ပြောင်းလဲနေသည့် အစိတ်အပိုင်းများ (dynamic components) အတွက် - သင့်လျော်သည့် Cache-Control header တစ်ခုကို သတ်မှတ်ပေးခြင်း
အင်တာနက်စာမျက်နှာများကို ပုံစံထုတ်သည့် နည်းပညာများ (Web page designs) တိုးတက် ထွန်းကားလာသည်နှင့် အမျှ၊ Scripts, Stylesheets, Images နှင့် Flash တို့ကို ပိုမို အသုံးပြုလာကြသည်။ ၀က်ဘ်ဆိုက်တစ်ခုသို့ ပထမအကြိမ် ၀င်ရောက်ကြည့်ရှုသူ တစ်ဦးအတွက် HTTP request အတော်များများကို ပြုလုပ်ရမည် ဖြစ်သော်လည်း၊ Expires header ကို အသုံးပြုခြင်းအားဖြင့် ၀က်ဘ်ဆိုက်၏ အစိတ်အပိုင်းများကို Cache လုပ်ပေးထား နိုင်သည်။ ထိုသို့ ပြုလုပ်ထားခြင်းအားဖြင့် နောက်ထပ် ဆက်လက် ကြည့်ရှုမည့် စာမျက်နှာများတွင် ဖြစ်ပေါ်လာမည့် HTTP request များကို လျော့ချနိုင်သည်။ Expires headers များကို အများအားဖြင့် ပုံများ အတွက် အသုံးပြုလေ့ ရှိကြသော်လည်း၊ အခြား အစိတ်အပိုင်းများ ဖြစ်သည့် Scripts, Stylesheets များနှင့် Flash များအတွက်လည်း အသုံးပြု နိုင်သည်။
အင်တာနက်ကြည့်ဆော့ဖ်၀ဲများ (Browser) နှင့် Proxy များတွင် HTTP request များ၏ အရွယ်အစားနှင့် အရေအတွက်တို့ကို လျော့ချနိုင်ရန်အတွက် - ယာယီထိန်းသိမ်းရာ နေရာ (Cache) ကို အသုံးပြုလေ့ ရှိသည်။ ဤနည်းဖြင့် အင်တာနက်ကြည့်ဆော့ဖ်၀ဲများတွင် စာမျက်နှာများကို ပိုမို လျင်မြန်စွာ မြင်တွေ့ရစေနိုင်သည်။ ၀က်ဘ်ဆာဗာ (Web Server) တစ်ခုသည် လာရောက်ဆက်သွယ်သည့် အင်တာနက်ကြည့်ဆော့ဖ်၀ဲ (Client browser) များကို စာမျက်နှာတစ်ခု၏ အစိတ်အပိုင်းများအား မည်မျှကြာအောင် ထိန်းသိမ်းအသုံးပြု (Cache) မည်ကို ပြန်လည်ပြောပြရန် အတွက် HTTP response များတွင် သက်တမ်းကုန်ဆုံးမည့် အချိန်ကာလ အသိပေးချက် (Expires header) များကို အသုံးပြုသည်။ ဥပမာ - အောက်တွင် ဖော်ပြထားသည့် Expires header သည် April 15, 2010 ကြာမှ သက်တမ်းကုန်ဆုံးမည် ဖြစ်ကြောင်း အသိပေးချက် တစ်ခု ဖြစ်သည်။
အကယ်၍ ကျွန်တော်တို့ အသုံးပြုနေသော ၀က်ဘ်ဆာဗာမှာ Apache ဖြစ်နေပါက ယခုလက်ရှိ အချိန်ကို အမှီပြုကာ သက်တမ်းကုန်ဆုံးမည့် နေ့ရက် (expiration date) တစ်ခုကို သတ်မှတ်ပေးရန်အတွက် ExpiresDefault directive ကို အသုံးပြုသည်။ အောက်တွင်ဖော်ပြထားသည့် နမူနာ Directive မှာ အင်တာနက်ကြည့်ဆော့ဖ်၀ဲက စတင်ရယူသည့် နေ့မှ စတင်ရေတွက်ကာ နောင် 10 နှစ်ကြာမှ သက်တမ်းကုန်ဆုံးမည် ဖြစ်ကြောင်း အသိပေးထားခြင်း ဖြစ်သည်။
Far future Expires header တစ်ခုကို အသုံးပြုသည့် အခါ အရေးတကြီး မှတ်သားထားရမည့် အချက်တစ်ခုမှာ - ကျွန်တော်တို့ အနေဖြင့် အစိပ်အပိုင်းတစ်ခုကို အပြောင်းအလဲ လုပ်လိုက်သည့် အချိန်တိုင်း ထို အစိတ်အပိုင်း (Component) ၏ အမည်ကို ပြောင်းလဲပေးရမည်။ Yahoo တွင် ဤအဆင့်ကို စနစ်တည်ဆောက်မှု၏ အစိတ်အပိုင်း တစ်ခုအဖြစ် ဆောင်ရွက်လေ့ ရှိသည်။ သက်ဆိုင်ရာ အစိတ်အပိုင်း၏ အမည်တွင် Version Number ကို ထည့်သွင်းရေးသားခြင်း ဖြစ်သည်။ ဥပမာ - yahoo_2.0.6.js
Far future Expires header တစ်ခုကို အသုံးပြုသည့် နည်းလမ်းမှာ မိမိ၏ ၀က်ဘ်ဆိုက်သို့ တစ်ကြိမ်လာရောက်ဖူးသူများ နောက်ထပ် လာရောက်သည့် အခါအတွက် ပိုမို အကျိုးသက်ရောက်မှု ရှိသည်။ ပထမအကြိမ် လာရောက်လည်ပတ်သူများနှင့် Browser Cache ကို ရှင်းထားသူများအတွက် ဖြစ်ပေါ်လာမည့် HTTP request အရေအတွက်ကိုတော့ လျော့ချပေးနိုင်ခြင်း မရှိပေ။ ထို့ကြောင့် ဤနည်းလမ်း၏ အကျိုးသက်ရောက်မှုသည် ၀က်ဘ်ဆိုက်တစ်ခုသို့ လာကြည့်သူများ၏ အကြိမ်အရေအတွက် နှင့် ကျွန်တော်တို့၏ Primed Cache လုပ်ထားသည့် အခြေအနေများတွင် များစွာ မူတည်နေသည်။ (ယခု ရည်ညွှန်းထားသည့် Yahoo Developer Network စာမျက်နှာရှိ အစိတ်အပိုင်းများတွင် Primed Cache လုပ်ထားပြီး ဖြစ်သည်။)
Yahoo Engineer များ၏ လေ့လာ တိုင်းတာချက်များအရ far future Expires header တစ်ခုကို အသုံးပြုခြင်း အားဖြင့် အင်တာနက်ကြည့်ဆော့ဖ်၀ဲ များက သိမ်းဆည်း (Cache) ထားသည့် အစိတ်အပိုင်းများ၏ အရေအတွက်ကို တိုးတက်စေနိုင်ပြီး၊ မကြာသေးမီက ကြည့်ရှုထားခဲ့သည့် စာမျက်နှာများကို ပြန်လည် ကြည့်ရှုသည့် အခြေအနေများတွင် ကြည့်နေသူ၏ အင်တာနက်ကြည့်ဆော့ဖ်၀ဲမှ ဆာဗာဆီသို့ မည်သည့် တောင်းဆိုမှုမျိုးကိုမျှ ပြန်လည် ပေးပို့ခြင်း မပြုတော့ဘဲ အင်တာနက်ကြည့်ဆော့ဖ်၀ဲက သိမ်းဆည်း (Cache) ထားသည့် အချက်အလက်များကိုသာ ပြန်လည် ပြသပေးမည် ဖြစ်သည်။ ထို့ကြောင့် User ၏ အင်တာနက် Bandwidth ကိုလည်း ချွေတာရာ ရောက်သကဲ့သို့ ဆာဗာတွင်လည်း အလုပ်ရှုပ် သက်သာစေသည်။
REF: http://developer.yahoo.com/performance/rules.html#expires
Add new comment