التخزين المؤقت لصفحة كاملة - الحاجة إلى السرعة
نشرت: 2020-10-02
يعد التخزين المؤقت لموقع الويب والتخزين المؤقت للصفحة الكاملة من الأساليب التي تعمل على تسريع وقت تحميل مواقع الويب. إنها ممارسة شائعة جدًا يتم استخدامها في كل مكان تقريبًا بسبب المكاسب الهائلة التي تجلبها لأداء موقع الويب. يعمل التخزين المؤقت عن طريق جعل خادم الويب أكثر كفاءة في أداء وظيفته. يعد التخزين المؤقت لصفحة كاملة شكلًا أكثر تقدمًا من التخزين المؤقت ، لذا لفهم التخزين المؤقت للصفحة الكاملة ، فلنبدأ بالتخزين المؤقت العادي ونبني من هناك.
متجر Joe لقطع غيار السيارات - موقع ويب ثابت
تخيل جو. إنه رجل يمتلك ويدير مستودعًا كبيرًا مليئًا بقطع غيار السيارات. يوجد في الجزء الأمامي من المستودع عداد يصل إليه العملاء لشراء أجزائه. عندما يصل العميل لشراء بعض الأجزاء ، تتبع المعاملة هذا الإجراء:
- يقوم العميل بتسليم جو قائمة بقطع غيار السيارات.
- يجلب جو الجزء الأول ويضعه على المنضدة.
- يجلب جو الجزء الثاني ويضعه على المنضدة.
- وهكذا حتى نهاية القائمة.
- يدفع العميل ويغادر.
إذن كيف ينطبق هذا على موقع ويب ثابت؟
موقع الويب الثابت هو موقع لا يستخدم أي قواعد بيانات أو نصوص PHP أو أي برامج أخرى. فكر في موقع ويب بسيط عبارة عن صفحات وصور بتنسيق HTML فقط. يمثل Joe ومستودعاته أجزاء هذا الموقع البسيط مثل هذا:
- المستودع هو الخادم الفعلي.
- Joe هو برنامج خادم الويب مثل Apache
- أجزاء السيارة هي الملفات التي يتكون منها موقع الويب مثل الصور وملفات HTML.
الإجراء الخاص بخدمة هذا الموقع البسيط هو:
- يطلب المستعرض صفحة ويب من Apache تعمل على الخادم.
- يقرأ Apache الملف الأول من القرص ويرسله إلى المتصفح.
- يقرأ Apache الملف الثاني من القرص ويرسله إلى المتصفح.
- وهكذا حتى يتم جلب كل شيء.
- يعرض المتصفح صفحة الويب المكتملة.
يعمل هذا الإعداد بشكل جيد مع المواقع الصغيرة ولكنه يفشل بسرعة تحت الضغط.
جو مشغول - التخزين المؤقت يوفر اليوم
يعمل نظام جو بشكل جيد حتى يبدأ في الانشغال. مشغول للغاية في الواقع لدرجة أنه يقضي معظم وقته في المشي من المنضدة إلى المستودع لدرجة أنه لا يستطيع مواكبة جميع العملاء الجدد.
يمكن لـ Joe شراء مستودع إضافي وتوظيف شخص آخر للعمل هناك لتلبية الطلب الإضافي. لكن هذا مكلف ولا يزيد من الموارد التي يمتلكها بالفعل. بدلاً من ذلك ، يفكر جو في كيفية جعل عمليته أكثر كفاءة في المستودع الذي لديه.
يدرك Joe أن 90٪ من الأجزاء التي يجلبها للعملاء هي واحدة من 10 قطع فقط. لذلك قرر الاحتفاظ بهذه الأجزاء العشرة تحت المنضدة حيث يمكنه الاستيلاء عليها على الفور عندما يطلبها أحدهم. يمكنه الآن تلبية غالبية طلبات العملاء مباشرة من العداد دون الحاجة إلى رحلة إلى المستودع. هذا أسرع بكثير.
التخزين المؤقت يفعل شيئًا مشابهًا جدًا على خادم الويب. تمامًا مثل عودة Joe إلى المستودع ، فإن الإجراء الأبطأ عند تقديم الملفات الثابتة هو تحميل الملف من جهاز التخزين. ما يفعله التخزين المؤقت هو الاحتفاظ بالملفات الأكثر طلبًا في ذاكرة الوصول العشوائي حيث يمكن الوصول إليها أسرع بآلاف المرات من قراءتها من التخزين.

يعمل هذا النوع من التخزين المؤقت بشكل رائع مع الصور والملفات الثابتة الأخرى ، لكن WordPress هو موقع ديناميكي يحتوي على نصوص PHP وقاعدة بيانات.
أدخل ذاكرة التخزين المؤقت للصفحة الكاملة.
تصبح حياة جو معقدة - PHP وقواعد البيانات والتخزين المؤقت
تم افتتاح ورشة تويوتا جديدة في نفس بلدة جو وهم يستخدمون جو لتزويدهم بقطع الغيار. يعد هذا أمرًا رائعًا بالنسبة لجو باستثناء مشكلة واحدة ، حيث تطلب تويوتا قطع الغيار فقط من خلال رقم جزء تويوتا الخاص بها. لقد أعطوا Joe كتالوجًا ضخمًا حتى يتمكن من البحث عن أرقام قطع غيار Toyota ومطابقتها مع الأجزاء الموجودة في مستودعه كلما تلقى طلبًا منهم.
لكن هذا يجعل جو يتباطأ مرة أخرى.
في أي وقت يتعين عليه البحث عن جزء Toyota في الكتالوج ، فإنه يستغرق وقتًا طويلاً. حتى لو كان أحد الأجزاء الموجودة تحت المنضدة ، لا يمكنه الوصول إليه فقط لأنه يتعين عليه أولاً البحث عن رقم جزء Toyota في الكتالوج. لا يزال نظامه القديم المتمثل في الاحتفاظ بأكثر 10 أجزاء مطلوبة تحت العداد يساعد ولكن عمليات البحث في الكتالوج الجديدة هي الآن عنق الزجاجة الكبير.
يفكر جو في هذا مرة أخرى ويخرج بحل. لاحظ أن معظم طلبات Toyota هي من مجموعة صغيرة فقط. لذلك قام بكتابة ورقة الغش لأرقام قطع غيار تويوتا الأكثر شيوعًا والأجزاء المقابلة لها وقام بتسجيلها على سطح العمل.
الآن لا يحتاج إلى استخدام الكتالوج لمعظم طلبات Toyota ، يمكنه إلقاء نظرة على ورقة الغش وتحويل رقم جزء Toyota على الفور تقريبًا إلى جزء يمكنه جلبه.
تواجه مواقع WordPress مشكلة مشابهة لمشكلة Joe. يقوم WordPress ببناء كل صفحة ويب عندما يطلبها المتصفح. لا توجد صفحات HTML التي يقوم المستعرض الخاص بك بتحميلها حتى تسأل WordPress عنها.
هذه هي الطريقة التي ينشئ بها WordPress صفحة من موقعك:
- يطلب المستعرض صفحة ويب من WordPress.
- يقبل سكربت PHP الطلب ويستعلم عن قاعدة البيانات لما تحتاجه لبناء الصفحة.
- تقوم قاعدة البيانات بالبحث عن جميع المعلومات وإرجاعها إلى عملية PHP.
- يقوم سكربت PHP ببناء الصفحة بهذه المعلومات وإرسالها إلى المتصفح.
هذا كثير من العمل وهذا هو السبب في أن مواقع WordPress غير المخزنة مؤقتًا تحتاج إلى موارد كمبيوتر أكثر بكثير من مواقع الويب الثابتة.
تمامًا مثل Joe ، يتلقى موقع WordPress الخاص بك طلبات لنفس الصفحات كثيرًا ، مثل الصفحة المقصودة لموقعك حيث يتم تقديم هذه الصفحة في كل مرة يصل فيها زائر جديد. في إعداد غير ذاكرات التخزين المؤقت ، يتعين على WordPress معالجة هذا الطلب باستخدام سكريبس PHP وإجراء استعلامات قاعدة البيانات لكل زائر على الرغم من أنه ينشئ نفس الصفحة بالضبط في كل مرة.
هذا يجعل قدرا كبيرا من العمل المكرر.
التخزين المؤقت لصفحة كاملة يحل هذه المشكلة. يلاحظ أن طلبًا معينًا والصفحة التي يتم إنشاؤها هما نفس الشيء دائمًا ، لذا فإنه يخزن نسخة من الصفحة في ذاكرة الوصول العشوائي. كما أنها تحتفظ بورقة غش للطلبات التي أنشأت تلك الصفحات ، لذلك عندما يطلب الزائر صفحة تم إنشاؤها قبل أن تخدمها مباشرة من ذاكرة الوصول العشوائي بدلاً من إعادة إنشائها.
هذا يقلل بشكل كبير من عبء العمل على خادم الويب عن طريق تجاوز العديد من عمليات PHP وعمليات البحث في قاعدة البيانات ومن خلال تقديم الصفحات التي تم إنشاؤها مسبقًا مباشرة من ذاكرة الوصول العشوائي. يمكن أن يمنحك هذا موقع WordPress ديناميكيًا يكاد يكون بنفس كفاءة موقع الويب الثابت.
يعد التخزين المؤقت والتخزين المؤقت للصفحة الكاملة من التقنيات الرائعة التي تستفيد من موارد خادم الويب الخاص بك لزيادة كفاءة خادم الويب الخاص بك ومنحك موقع WordPress سريعًا.