လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> shared dns ထိရောက်သောရှိမရှိစောင့်ကြည့်လေ့လာနည်း

shared dns ထိရောက်သောရှိမရှိစောင့်ကြည့်လေ့လာနည်း

M66 2025-05-31

ကွန်ယက်တောင်းဆိုမှုများအတွက် PHP ကိုအသုံးပြုသောအခါ, ကောက်ကောက်သည်ရိုးရှင်းသော HTTP တောင်းဆိုမှုများကိုထောက်ပံ့ရုံသာမက cookies များ, DNS, SSL စသည့်အဆင့်မြင့်အင်္ဂါရပ်များကိုလည်းအထောက်အကူပြုသည်။

၎င်းတို့အနက် curl_share_init သည်ရုရှား cache, cookies များ, sSL session များကဲ့သို့သောအချက်အလက်များကိုမျှဝေရန်ဆံပင်ကောက်ကောက်အမျိုးမျိုးကိုခွင့်ပြုသည်။

သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင်လူအများစုကမေးလိမ့်မည် -
မျှဝေထားသော DNS cache ကိုထိရောက်သောလား။ အဲဒါကိုဘယ်လိုစောင့်ကြည့်မလဲ။
ဤဆောင်းပါးသည်သင့်အားတစ်ဆင့်ပြီးတစ်ဆင့်ခွဲခြမ်းစိတ်ဖြာရန်နှင့်အပြည့်အဝပါရွေးဥပမာတစ်ခုပေးရန်သင့်အားယူပါလိမ့်မည်။

curl_share_init ဆိုတာဘာလဲ။

အဆိုပါ curl_share_init () function ကို () function ကိုမျှဝေလက်ကိုင်ကိုစတင်ရန်အသုံးပြုသည်။ Curlopt_setoptcurlopt_sare option နှင့် တွဲဖက်. ၎င်းသည်အချို့သောဒေတာများကိုမျှဝေရန် curloptes တောင်းဆိုမှုများကိုခွင့်ပြုသည်။ ဘုံမျှဝေထားသော contents များတွင်:

  • DNS cache ( curl_lock_data_dns )

  • Cookie ( curl_lock_data_cookie )

  • SSL session ( curl_lock_data_ssl_session )

ဥပမာအားဖြင့်:

 $sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);

ဤနည်းအားဖြင့်, curl မျိုးစုံသည်တူညီသော $ sh ကို ချည်နှောင်ထားပြီး DNS cache ကိုမျှဝေနိုင်သည်။

DNS ကိုမျှဝေခြင်းရှိမရှိစစ်ဆေးနည်း။

ဆံပင်ကောက်ကောက်သည် "Mondo DNS cache hits hits" ကို interface ကိုမပေးသော်လည်းသွယ်ဝိုက်လေ့လာနိုင်သည်။

  1. ပထမတောင်းဆိုမှုအချိန်ကုန်ခံခြင်း - ပထမတောင်းဆိုချက်သည်များသောအားဖြင့် DNS resolution အချိန်ဖြစ်သည်။

  2. နောက်ဆက်တွဲတောင်းဆိုမှုများအတွက်အချိန်ကုန်ခံခြင်း - မျှဝေထားသော DNS ကိုဖွင့်ထားလျှင် DNS အမည်ရှိသည့်နောက်ဆက်တွဲတောင်းဆိုမှုများသည်ဆုံးဖြတ်ချက်ကိုသိသိသာသာလျှော့ချသင့်သည်။

တနည်းအားဖြင့်ကျွန်ုပ်တို့သည် curlinfo_namelookup_time နှင့် curlinfo_total_time ကို စောင့်ကြည့်လေ့လာနိုင်သည်။

  • ဒိုမိန်းအမည်ဖြေရှင်းချက်အချိန်

  • စုစုပေါင်းအချိန်စားသုံးမှု

Namelookup_timeTime ကိုပထမတောင်းဆိုမှုနှင့်နောက်ဆက်တွဲတောင်းဆိုမှုကိုနှိုင်းယှဉ်ခြင်းအားဖြင့် DNS cache ကိုအကျိုးသက်ရောက်သည်ကိုသင်ဆုံးဖြတ်နိုင်သည်။

နမူနာကုဒ်အပြည့်အစုံ

curl_share_init ကို အသုံးပြု. PHP ကုဒ်သည် https://m66.net/test သို့တောင်းဆိုမှုနှစ်ခုကိုပို့ခြင်းနှင့် DNS resolution ကိုပုံနှိပ်ခြင်းနှင့် DNS resolution အချိန်ကိုပုံနှိပ်ခြင်းဖြင့်ပေးပို့ခြင်း။

 <?php
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);

$url = 'https://m66.net/test';

// ပထမတောင်းဆိုချက်
$ch1 = curl_init($url);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_SHARE, $sh);

curl_exec($ch1);
$dns_time1 = curl_getinfo($ch1, CURLINFO_NAMELOOKUP_TIME);
$total_time1 = curl_getinfo($ch1, CURLINFO_TOTAL_TIME);
curl_close($ch1);

echo "ပထမတောင်းဆိုချက်:\n";
echo "DNS ခွဲခြမ်းစိတ်ဖြာအချိန်: {$dns_time1} စက်ဏန့်\n";
echo "စုစုပေါင်းအချိန်စားသုံးမှု: {$total_time1} စက်ဏန့်\n";

// စောင့်1စက်ဏန့်,အသစ်တောင်းဆိုမှုများကိုတုပ
sleep(1);

// ဒုတိယတောင်းဆိုချက်
$ch2 = curl_init($url);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_SHARE, $sh);

curl_exec($ch2);
$dns_time2 = curl_getinfo($ch2, CURLINFO_NAMELOOKUP_TIME);
$total_time2 = curl_getinfo($ch2, CURLINFO_TOTAL_TIME);
curl_close($ch2);

echo "\nဒုတိယတောင်းဆိုချက်:\n";
echo "DNS ခွဲခြမ်းစိတ်ဖြာအချိန်: {$dns_time2} စက်ဏန့်\n";
echo "စုစုပေါင်းအချိန်စားသုံးမှု: {$total_time2} စက်ဏန့်\n";

// သန့်ရှင်းရေးလုပ်သည်
curl_share_close($sh);
?>

ကုဒ်သော့ခွဲခြမ်းစိတ်ဖြာခြင်း

? Enable Sharing : curl_share_init နှင့် curlshopt_Share ကို curlshare_init နှင့် curlshopt_share ကိုသုံးပါ။

? အချိန်ယူပါ - Curlinfo_Getinfo မှတဆင့် curlinfo_namelookup_time ကို ရယူပါ။

? နှိုင်းယှဉ်အကျိုးသက်ရောက်မှု - ပထမတောင်းဆိုချက်သည်များသောအားဖြင့်သိသာထင်ရှားသည့် DNS အချိန် (ထိုကဲ့သို့သောမီလီစက္ကန့်များစွာကဲ့သို့) ဒုတိယအကြိမ် cache သည်အကျိုးသက်ရောက်မှုရှိပါက Namelookup_time သည် 0 နှင့်နီးသည်။

မှတ်သားရန်အရာ

  • တူညီတဲ့ဒိုမိန်းအမည် - အိမ်ရှင်အမည် (ဥပမာ M66.net ) သည် cache ကိုထိနိုင်သည်။

  • PHP Curl ဗားရှင်း - PHP ၏အဟောင်းများဗားရှင်းအချို့သည် curl_share ကို အပြည့်အ 0 မထောက်ပံ့နိုင်ပါ။ Curl ဗားရှင်းကိုစစ်ဆေးရန် Phpinfo () ကို အသုံးပြုရန်အကြံပြုသည်။

  • Thread Safety : အကယ်. သင်သည် curl_share ကို ပေါင်းစုံသို့မဟုတ်ဘက်စုံသောလုပ်ငန်းစဉ်ပတ် 0 န်းကျင်တွင်အသုံးပြုပါကလုံခြုံရေးကိုပိတ်ထားရန်လိုအပ်သည်။