လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP သည် API Cache Control: စွမ်းဆောင်ရည်တိုးတက်စေရန်အကောင်းဆုံးအလေ့အကျင့်များ

PHP သည် API Cache Control: စွမ်းဆောင်ရည်တိုးတက်စေရန်အကောင်းဆုံးအလေ့အကျင့်များ

gitbox 2025-07-30

Receable Api ၏ cache control သည်အဘယ်နည်း

Restable Api သည် HTTP protocol အကောင်အထည်ဖော်မှုအပေါ် အခြေခံ. interface style တစ်ခုဖြစ်သည်။ ၎င်းသည်အရင်းအမြစ်နှင့်အရင်းအမြစ်၏အခြေအနေကိုခွဲခြားသတ်မှတ်ခြင်းကို client နှင့် server အကြားအပြန်အလှန်ဆက်သွယ်မှုကိုပိုမိုလွယ်ကူစေသည်။ ငြိမ်ဝပ်စွာ API ကို အသုံးပြု. Cache သည်စွမ်းဆောင်ရည်အကောင်းဆုံးတွင်အရေးပါသောအခန်းကဏ် plays မှပါ 0 င်သည်။ Cache Control သည် cache ကို Cache ကိုမည်သို့အသုံးပြုရမည်ကိုပြောပြရန်ဆာဗာတွင် http ခေါင်းစီးများကိုသတ်မှတ်ရန်ရည်ညွှန်းသည်။

အနားယူ api cache ကိုထိန်းချုပ်ထားသော HTTP header

HTTP ခေါင်းစီးများသည် HTTP တောင်းဆိုမှုများနှင့်တုန့်ပြန်မှုများတွင်ပါ 0 င်သည်။

cache ကိုထိန်းချုပ်မှု

cache-control သည်သုံးစွဲသူတောင်းဆိုမှုများ, proxy server cache cache များနှင့်ဆာဗာတုံ့ပြန်မှုများကိုထိန်းချုပ်ရန် HTTP / 1.1 တွင်ထည့်သွင်းထားသောညွှန်ကြားချက်အသစ်တစ်ခုဖြစ်သည်။ ဘုံတန်ဖိုးများမှာအောက်ပါအတိုင်းဖြစ်သည် -

  • အများပြည်သူ - တုံ့ပြန်မှုကို Middleman (Proxy server ကဲ့သို့) မှမဆိုသိမ်းဆည်းထားနိုင်သည်။
  • ပုဂ္ဂလိက - တုံ့ပြန်မှုကိုအသုံးပြုသူတစ် ဦး တည်းကသာ (ထိုကဲ့သို့သော browser cache) ဖြင့်သာသိမ်းဆည်းထားနိုင်သည်။
  • No-cache : client နှင့် cache အားလုံးသည် cache ကိုဆာဗာသို့ cache ၏တရားဝင်မှုကိုအတည်ပြုရမည်ဖြစ်ပြီး cache ကိုတိုက်ရိုက်မသုံးနိုင်ပါ။
  • စတိုးဆိုင်မရှိပါ - တုံ့ပြန်မှုကိုသိမ်းဆည်းထားလို့မရဘူး။
  • S-Maxage : Proxy server သည်အသက်ရှင်ခြင်းအချိန်ကိုသိုလှောင် ထား. Max-age ထက်ပိုမိုမြင့်မားသည်။
  • Max-oner : ဤအချိန်အပြီးတွင်ထည့်သွင်းစဉ်းစားမည့်တုန့်ပြန်မှု၏အချိန် (စက္ကန့်) (စက္ကန့်အနည်းငယ်) ။

Etag

Etag သည် HTTP တုန့်ပြန်မှုခေါင်းစဉ်တွင်လက်ရှိအရင်းအမြစ်အခြေအနေကိုဖော်ထုတ်သည့် entity tag ဖြစ်သည်။ တောင်းဆိုသည့်အခါ 0 န်ဆောင်မှုခံယူသူသည်ယခင်ကမယှဉ်ပြိုင်မှု header မှတဆင့်ဆာဗာသို့ယခင်ကရရှိသော ETag တန်ဖိုးကိုဆာဗာသို့ပို့သည်။ ဆာဗာသည် ETag တန်ဖိုးကိုတသမတ်တည်းရှိမရှိနှင့်နှိုင်းယှဉ်သည်။ အကယ်. ၎င်းသည်တသမတ်တည်းဖြစ်ပါက 304 ကိုပြုပြင်မွမ်းမံထားသောတုံ့ပြန်မှုမရှိပါ။ client သည် cache ကိုတိုက်ရိုက်အသုံးပြုနိုင်သည်။

နောက်ဆုံး - ပြုပြင်မွမ်းမံ

နောက်ဆုံးပြင်ဆင်ထားသော - လက်ရှိအရင်းအမြစ်၏နောက်ဆုံးပြင်ဆင်ထားသောအချိန်ကိုဖော်ထုတ်သည့် HTTP တုံ့ပြန်မှုခေါင်းစီးတွင်ရက်စွဲသတ်မှတ်ချက်ဖြစ်သည်။ တောင်းဆိုသည့်အခါ 0 န်ဆောင်မှုခံယူသူသည်ယခင်ကရရှိသောနေ့စွဲနှင့်အချိန်တန်ဖိုးကို header မှ server မှတစ်ဆင့်ဆာဗာမှတဆင့်ယခင်ကရရှိသောနေ့စွဲနှင့်အချိန်တန်ဖိုးကိုပေးပို့သည်။ ဆာဗာသည်နေ့စွဲနှင့်အချိန်သည်တသမတ်တည်းရှိ / ရှိမရှိနှင့်နှိုင်းယှဉ်သည်။ အကယ်. ၎င်းသည်တသမတ်တည်းဖြစ်ပါက 304 ကိုပြုပြင်မွမ်းမံထားသောတုံ့ပြန်မှုမရှိပါ။ client သည် cache ကိုတိုက်ရိုက်အသုံးပြုနိုင်သည်။

PHP တွင်အနားယူသည့် api ၏ cache ကိုထိန်းချုပ်ခြင်းကိုအကောင်အထည်ဖော်ခြင်း

PHI တွင်ပြန်လည်နေရာချထားသည့် api cache contact ကိုအကောင်အထည်ဖော်ခြင်း HTTP header အချက်အလက်များကိုသတ်မှတ်ခြင်းဖြင့်အောင်မြင်နိုင်သည်။

cache-control header ကိုတည်ဆောက်ခြင်း

Cache Control header ကိုဆာဗာပေါ်ရှိ header function မှတဆင့်သတ်မှတ်နိုင်သည်, ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 
$maxAge = 600; // သိုကာတာ600စက်ဏန့်
header('Cache-Control: public, max-age=' . $maxAge);

အထက်ပါကုဒ်သည် cache control header ကိုလူသိရှင်ကြားလူသိရှင်ကြားထုတ်ဖော်ပြောဆိုသည်။ Middleman (Proxy server ကဲ့သို့) သည်စက္ကန့် 600 ဖြစ်သည်။

Etag Header ကိုတည်ဆောက်ခြင်း

ETAG Header ကိုဆာဗာပေါ်ရှိ header function မှတဆင့်သတ်မှတ်နိုင်သည်, ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 
$etag = md5($responseBody); // တုံ့ပြန်မှုအကြောင်းအရာအပေါ်အခြေခံပြီး entity tags များကိုထုတ်လုပ်ပါ
header('ETag: ' . $etag);

အထက်ပါကုဒ်သည်တုန့်ပြန်မှုအကြောင်းအရာအပေါ် အခြေခံ. ETag Tag ကိုထုတ်ပေးသည်။

နောက်ဆုံးပြင်ဆင်ထားသော header setting

နောက်ဆုံးပြုပြင်ထားသောခေါင်းစီးကိုဆာဗာပေါ်ရှိ header function မှတဆင့်သတ်မှတ်နိုင်သည်။

 
$lastModifiedTime = filemtime($filePath); // ဖိုင်၏နောက်ဆုံးပြုပြင်မွမ်းမံအချိန်ကိုရယူပါ
$lastModified = gmtdate('r', $lastModifiedTime);
header('Last-Modified: ' . $lastModified);

အထက်ပါကုဒ်သည်ဖိုင်၏နောက်ဆုံးပြုပြင်မွမ်းမံချိန်ကိုယူပြီး၎င်းကို GMT format နှင့်ပြောင်းလဲပြီးတုန့်ပြန်ခေါင်းစီး၏တစ်စိတ်တစ်ပိုင်းအဖြစ်သတ်မှတ်သည်။

အကျဉ်းချုပ်

ငြိမ်ဝပ်စွာ api ၏ cache control သည်လျှောက်လွှာစွမ်းဆောင်ရည်ကိုများစွာတိုးတက်စေပြီး server အရင်းအမြစ်များကိုတောင်းဆိုမှုများနှင့်တုံ့ပြန်မှုများကိုလျှော့ချနိုင်သည်။ Restable Api ၏ cache control ကိုအကောင်အထည်ဖော်သည့်အခါ 0 န်ဆောင်မှုခံယူသူအား Cache ကိုမည်သို့ cache ကိုအသုံးပြုရမည်ကိုပြောပြရန် HTTP ခေါင်းစီးများကိုစီစဉ်နိုင်သည်။ HTTP Header တွင် cache control ကဲ့သို့သောအရေးကြီးသောသတင်းအချက်အလက်များပါဝင်သည်။ client သည် cache response ကိုတိုက်ရိုက်အသုံးပြုနိုင်သည်ကိုဆုံးဖြတ်ရန်ဤအချက်အလက်ကိုအသုံးပြုနိုင်သည်။