"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن لرؤوس HTTP Cache Headers تحسين أداء موقع PHP على الويب؟

كيف يمكن لرؤوس HTTP Cache Headers تحسين أداء موقع PHP على الويب؟

تم النشر بتاريخ 2024-11-10
تصفح:786

How can HTTP Cache Headers Optimize PHP Website Performance?

استخدام رؤوس ذاكرة التخزين المؤقت لـ HTTP لتحسين أداء موقع PHP على الويب

على الرغم من توفر أنظمة وأطر عمل ذاكرة التخزين المؤقت المتقدمة، في بعض الأحيان يكون من الضروري تنفيذ HTTP الأساسي رؤوس ذاكرة التخزين المؤقت لتحسين أداء موقع الويب. خاصة بالنسبة لمواقع PHP 5.1.0، التي تفتقر إلى إمكانات معينة للتخزين المؤقت، تلعب الرؤوس دورًا حيويًا.

رؤوس التخزين المؤقت الفعالة لمواقع الويب PHP

لتمكين التخزين المؤقت الفعال، ضع في اعتبارك الرؤوس التالية:

  • آخر تعديل: يضبط تاريخ آخر تعديل للمستند، والذي تستخدمه المتصفحات لتحديد ما إذا كان المحتوى قد تغير منذ آخر زيارة لهم.
  • ETag: يحدد معرفًا فريدًا للمستند، مما يسمح للمتصفحات بالتحقق مما إذا كان لديهم بالفعل أحدث إصدار.
  • ينتهي: يعين وقت انتهاء الصلاحية المطلق للمستند، وتوجيه المتصفحات بعدم تخزينه مؤقتًا بعد ذلك الوقت.
  • التحكم في ذاكرة التخزين المؤقت: يتحكم في كيفية ومدة تخزين المتصفح للمستند مؤقتًا. يمكن تعيينه على "عام"، مما يسمح لأي شخص بتخزين المستند مؤقتًا، أو "خاص"، مما يقصر التخزين المؤقت على المستخدمين الفرديين. قد ترغب في التفكير في استخدام "private_no_expire" إذا كنت بحاجة إلى فترات تخزين مؤقت أطول دون السماح بالتخزين المؤقت العام.

تنفيذ الطلبات المشروطة

بالإضافة إلى إعداد رؤوس ذاكرة التخزين المؤقت ، فمن الضروري التعامل مع الطلبات الشرطية، مثل "If-Modified-Since" و"If-None-Match". تسمح هذه الطلبات للمتصفحات بالتحقق مما إذا كان المستند قد تغير منذ تاريخ محدد أو ما إذا كانت علامة ETag قد تغيرت منذ آخر زيارة لهم.

إذا لم يتغير المحتوى، فيمكنك إرجاع الحالة "304 غير معدل" رمز، يشير إلى أن المتصفح يمكنه الاستمرار في استخدام الإصدار المخبأ. يعمل هذا الأسلوب الفعال على تقليل التنزيلات غير الضرورية وتسريع تحميل موقع الويب.

يوضح نموذج كود PHP التالي كيفية التعامل مع الطلبات الشرطية:

$timestamp = /* PHP script to generate a unique timestamp */;
$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = $language . $timestamp;

$if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
$if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false;
if ((($if_none_match && $if_none_match == $etag) || (!$if_none_match)) &&
    ($if_modified_since && $if_modified_since == $tsstring))
{
    header('HTTP/1.1 304 Not Modified');
    exit();
}
else
{
    header("Last-Modified: $tsstring");
    header("ETag: \"{$etag}\"");
}
من خلال تنفيذ رؤوس ذاكرة التخزين المؤقت والتعامل مع الطلبات المشروطة بشكل فعال، يمكنك تحسين الأداء وتجربة المستخدم لموقع PHP على الويب بشكل ملحوظ.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3