التخزين المؤقت على الإنترنت كمثال على شراء الحليب في المتجر


إذا اشتريت الحليب من المتجر ، يمكنك فهم كيفية عمل التخزين المؤقت على جانب الخادم وعلى جانب المتصفح.

إذا كنت من مستخدمي الإنترنت النشطين (وهذا هو الحال على الأرجح) ، فأنت تستخدم التخزين المؤقت باستمرار ، ولكن قد لا تعرف "ما وراء الكواليس": متى وكيف يعمل.

من وجهة نظر المطور ، يسهل التخزين المؤقت إنشاء تطبيقات الويب عالية الأداء وخوادم الويب: لست بحاجة إلى تحسين الخوادم المحملة بآلاف الطلبات باستمرار - أنت ببساطة تنفذ بروتوكولات التخزين المؤقت وتصبح الحياة أسهل بكثير.

عند التخزين المؤقت ، يقل وقت تحميل الصفحة من ثانيتين إلى ثانية واحدة ... وهو أمر غير مثير للإعجاب ، أليس كذلك؟ ولكن لا يمكنك الاستغناء عنها عندما تضطر إلى معالجة الطلبات من عدد كبير من المستخدمين.

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

لفهم تفسيري ، تحتاج إلى معرفة القليل عن أساسيات عمل خوادم الويب . دعنا نبدأ!

ترجم إلى Alconost

كيف سيبدو الإنترنت بدون التخزين المؤقت؟


قبل أن ننتقل إلى التخزين المؤقت ، دعنا نفكر في كيفية ظهور الإنترنت بدونها. تخيل للحظة أنك تعيش في القرنين الثامن عشر والتاسع عشر. في الريف. لديك مزرعة ولكن ليس لديك ثلاجة. أنت تحتفظ بالعديد من الأبقار ، لكن حليبها يفسد بسرعة ، وبالتالي من الصعب جدًا الاستفادة منه.

بالمناسبة ، في بعض الأماكن لا يزال الناس لا يملكون ثلاجات: إما يشربون الحليب الطازج على الفور ، أو يخلطونه مع الحبوب ويتركونه يتخمر - نهج مثير للاهتمام ، أليس كذلك؟

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



وهذا ليس هو الحال عندما يمكنك فقط الحصول على مزيد من الأبقار والتوسع ، لأن لديك قاعدة عملاء محدودة: فقط سكان قرية واحدة يشترون الحليب. لذلك ، هناك حدود معينة.



بدون التخزين المؤقت ، فإن قوة المعالجة للخوادم تحددك. يستخدم التخزين المؤقت لتحميل الموارد الثابتة مثل:

  • الصور
  • CSS
  • ملفات HTML ثابتة
  • ملفات JavaScript.

بشكل افتراضي ، لكل طلب وارد ، يجب أن يرسل الخادم استجابة جديدة. لكن طلب تحميل الصفحة يمكن أن يعني في الواقع أربعة طلبات منفصلة - واحد لكل فئة من الفئات المذكورة أعلاه. بالنظر إلى أن ملفات الصور عادة ما تكون ضخمة إلى حد ما ، فإن عددًا كبيرًا من المستخدمين من جميع أنحاء العالم سيزيدون من تحميل الخوادم بسهولة ، وستستغرق الصفحات وقتًا أطول للتحميل.



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

التخزين المؤقت من جانب الخادم


العودة إلى أبقارنا. هل تعرف ما الذي يسهل عمل مزرعة الألبان لدينا؟

تسوق مع ثلاجة!

لن يحتاج السكان بعد الآن إلى المزرعة وشرب الحليب على الفور ، لأنه يمكن تخزينه بأمان لعدة أسابيع.

يقوم المتجر بإزالة الحمل من المزرعة: الآن لا تحتاج الأبقار إلى الإزعاج لكل مشتري. يتعامل المتجر مع الطلب ، وعليك فقط أن تحلب أبقارك يوميًا. إضافة إلى ذلك: سيتمكن سكان القرى المجاورة الآن من شراء الحليب المخزن في الثلاجة.





ستعمل ذاكرة التخزين المؤقت من جانب الخادم ، مثل المتجر ، على معالجة الطلبات الشائعة وتقديم المحتوى بشكل أسرع وأكثر موثوقية.

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

عند هذه النقطة ، قد يكون لديك بالفعل أسئلة:

  1. كيف يمكن تحديد طلب بحث "شائع"؟
  2. ما هي مدة تخزين الاستجابات في ذاكرة التخزين المؤقت للخادم الوكيل؟

لشرح ذلك ، ستحتاج إلى دليل أكثر تفصيلاً لإعداد التخزين المؤقت ، ولكن من المهم الآن أن نعرف عن مفهوم واحد مهم - النضارة . ستكون هناك ملفات مختلفة على وكيل التخزين المؤقت ، يتم تخزينها مؤقتًا في أوقات مختلفة ، وعليها أن تقرر ما إذا كانت ستواصل إصدار هذه الملفات أم لا. سيعتمد هذا على سياسة التخزين المؤقت .

وهو يشبه أيضًا تخزين الحليب في المتجر. يحتاج مدير المتجر إلى تحديد المدة التي سيبقى فيها الحليب قبل التخلص منه. تقيس خوادم التخزين المؤقت أداءها من خلال النسبة المئوية لنتائج ذاكرة التخزين المؤقت - النسبة المئوية للمحتوى الذي يمكن تسليمه من خلال خادم التخزين المؤقت.

شبكة توصيل المحتوى


لذا ، لدينا محل بقالة واحد يبيع حليبك. بالفعل ليس سيئًا ، ولكن يمكن للسكان شراء الحليب فقط في متجر محلي واحد ، ومن غير المحتمل أن يأتي شخص ما من مكان بعيد. لتوسيع الإنتاج ، تحتاج إلى بيع الحليب في المزيد من المتاجر.

لذلك ، تبدأ في توصيل الحليب إلى متاجر أخرى ، وبالتالي تلبية الطلب في منطقة جغرافية أوسع بكثير. يشبه هذا شبكة توصيل المحتوى (CDN) - الوكلاء المتواجدين حول العالم (مثل تلك التي تمت مناقشتها أعلاه).

كمستخدم نهائي ، قد تعتقد أن الإنترنت عالي السرعة يسمح لك بتحميل معظم المواقع بسرعة كبيرة. ومع ذلك ، هذا ممكن في المقام الأول بفضل استخدام CDN للتسليم السريع للملفات الثابتة.

إذا كنت في إنجلترا وتحاول تنزيل ملف تم تخزينه مؤقتًا على خادم في خاباروفسك ، فسيأتي الجواب بتأخير معين: ستستغرق الإشارة وقتًا للسفر آلاف الكيلومترات من الكابلات. لذلك ، سيسمح لك خادم وكيل التخزين المؤقت المحلي في المملكة المتحدة بتحميل الموقع بشكل أسرع.





وبالتالي ، يمكن لخوادمك إرسال نسخة من الموارد الثابتة إلى كل خادم وكيل على شبكة CDN حتى يتمكنوا من معالجة الطلبات المحلية حتى لم تعد الموارد "حديثة". مزودو خدمات CDN المشهورون هم Rackspace و Akamai و Amazon Web Services.

التخزين المؤقت من جانب المتصفح


لذا ، يمكن الآن للأشخاص من جميع أنحاء البلاد (وحتى العالم) إعادة الحليب البارد المنتج إلى مزرعتك. كانت هناك مشكلة واحدة: لا يمكنهم تخزين الحليب في المنزل ، لذلك بعد الشراء يجب عليك شربه بسرعة ، والذهاب مرة أخرى إلى المتجر للحصول على جزء جديد. اتضح أن مثل هذا النظام لا يزال غير مناسب للغاية للمشترين.

سوف تنقذنا الثلاجة!

عند وجود ثلاجة ، يمكنك تخزين الحليب في المنزل ولا تجري في كل مرة إلى المتجر. فيما يتعلق بالتخزين المؤقت ، يعد هذا مكانًا مختلفًا تمامًا لتخزين الموارد الثابتة ، حيث أنه يقع على جانب العميل (بمعنى آخر ، على الكمبيوتر حيث يتم تشغيل المتصفح) ، وكان الخادم الوكيل الخاص بنا في مكان بعيد.

هذا النهج ليس مناسبًا للمستخدم فقط في حالة المواقع التي يتم زيارتها بشكل متكرر ، مثل Facebook أو Amazon ، ولكنه يسمح أيضًا لهذه المواقع بالتوفير في تكاليف الخادم بسبب عدد أقل من الطلبات التي تمت معالجتها.





وهنا من المهم أن نلاحظ أن الحليب في الثلاجة لا يظهر! على أي حال ، تحتاج إلى تقديم الطلب الأولي ، والذي سيصل إلى الخادم أو الخادم الوكيل ، وبعد ذلك فقط يمكنك تخزين بعض الملفات محليًا.

كيف يعرف المستعرض متى يطلب ملفات جديدة من الخادم؟ بعد كل شيء ، تحتاج إلى تحديث الملفات المحلية بطريقة أو بأخرى.

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



متى تبدأ في استخدام التخزين المؤقت


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

خذ Heroku ، على سبيل المثال ، أداة رائعة لنشر تطبيق الويب الأول. ومع ذلك ، لتطبيق التخزين المؤقت ، سيكون عليك استخدام خدمة منفصلة - على سبيل المثال ، CloudFront من Amazon أو CloudFlare - وسيستغرق الأمر وقتًا أطول لتعلم ذلك.

يمكنك ملاحظة التخزين المؤقت على جانب المتصفح عندما تحاول إعادة تحميل الصفحة والحصول على موارد ثابتة جديدة ، ولكن الصفحة لا تتغير ، بغض النظر عن عدد المرات التي تقوم فيها بتحديثها.

عادةً ما يكون السبب في ذلك هو بروتوكول التخزين المؤقت من جانب المستعرض. لتجاوز ذاكرة التخزين المؤقت للمتصفح وطلب موارد جديدة من الخادم ، يمكنك الضغط على Cmd + Shift + R (إذا كان لديك جهاز Mac) أو Ctrl + Shift + R (على جهاز كمبيوتر).

عن المترجم

تمت ترجمة المقال بواسطة Alconost.

تقوم Alconost بتوطين الألعاب والتطبيقات والمواقع بـ 68 لغة. مترجمون لغتهم الأم ، اختبار لغوي ، منصة سحابية بواجهة برمجة تطبيقات ، تعريب مستمر ، مدراء مشاريع 24/7 ، أي تنسيق لموارد السلسلة.

ننشئ أيضًا مقاطع فيديو إعلانية وتدريبية - للمواقع التي تبيع ، والصور ، والإعلانات ، والتدريب ، والتشويش ، والشرح ، والمقطورات لـ Google Play و App Store.

مزيد من التفاصيل

Source: https://habr.com/ru/post/ar416255/


All Articles