انتقل إلى محتوى الدرس
الدرس 48
دورة تكنولوجيا الويب

التخزين المؤقت HTTPHTTP Caching

التخزين المؤقت HTTP
أقسام الدرس
9
الأمثلة
11
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
1,362
محتوى الدرس
في هذا الدرس 9تصفّح المواضيع

HTTP Caching التخزين المؤقت HTTP

التخزين المؤقّت في HTTP هو طريقة لتحسين سرعة تحميل صفحات الويب، حيث يتم حفظ الملفات والصور المستخدمَة على جهاز المستخدم، وهذا يقلّل من وقت الانتظار ويقلّل من كمية البيانات المستهلكة من الإنترنت. يتم التحكّم في مدة وكيفية التخزين المؤقّت باستخدام إعدادات مثل "Cache-Control" و"Expires".

تلعب شبكات تسليم المحتوى [CDN] دورًا مهمًا أيضًا من خلال الاحتفاظ بنسخ من المحتوى في المواقع التي يستخدمها المستخدمين، لتسهيل الوصول السريع مما يوفر تجربة استخدام سلسة.

يعتبر التخزين المؤقت لـ HTTP Caching أحد الركائز الأساسية لتحسين أداء الويب وتجربة المستخدم، وله أهمية كبيرة من عدة جوانب منها ما يلي:

  • زيادة السرعة وتقليل التأخير: يقوم التخزين المؤقت بحفظ نُسخ من المحتوى الثابت [مثل الصور، وملفات CSS، وملفات JavaScript] والمحتوى القابل للتخزين مؤقتًا على خوادم التخزين المؤقت caches أو في المتصفحات. وهذا يقلل من زمن الاستجابة، حيث يمكن للمستخدمين تحميل هذه الموارد بسرعة من المخزن المؤقت بدلاً من إعادة تحميلها من الخادم الأصلي في كل مرة.

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

  • اقتصاد البيانات والنطاق الترددي: التخزين المؤقت يقلل من كمية البيانات التي يتم نقلها بين الخادم وعملاء الويب. وهذا مهم بشكل خاص للمستخدمين الذين لديهم حزم بيانات محدودة أو اتصال بطيء بالإنترنت.

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

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

  • توفير الطاقة: يقلل من استهلاك الطاقة لكل من الخوادم والأجهزة العميلة، مما يسهم في استدامة البيئات الرقمية والحد من الأثر الكربوني.

?How does HTTP caching work كيف يعمل التخزين المؤقت في HTTP؟

كيف يعمل التخزين المؤقت في HTTP:

الطلب والاستجابة الأولية:

  •  عندما يطلب العميل [مثل متصفح الويب] موردًا من الخادم للمرة الأولى، يقوم الخادم بالاستجابة بالبيانات المطلوبة مع بعض رؤوسHTTP.
  • قد تشمل هذه الرؤوس توجيهات التخزين المؤقت التي تُعلِم العميل أو الوسائط الوسيطة [مثل خوادم الوكيل] بكيفية ومدة تخزين الاستجابة.

رؤوس التحكم في التخزين المؤقت:

  •  يمكن للخادم أن يُضيف رأس"Cache-Control" مع توجيهات مثل "max-age`، التي تحدد المدة بالثواني التي يُعتبر فيها المورد حديثًا.
  • تشمل التوجيهات الأخرى "public"، "private"، "no-cache"، و"no-store"، حيث يؤثر كل منها على سلوك التخزين المؤقت بطرق مختلفة.

التخزين في الذاكرة المؤقتة:

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

الطلبات اللاحقة:

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


التحقق من البيانات المخزنة:

  •  إذا كانت البيانات المخزنة قديمة أو تتطلب التحقق، قد يرسل التخزين المؤقت طلبًا شرطيًا باستخدام رؤوس مثل "If-Modified-Since" أو "If-None-Match".
  • يمكن للخادم حينئذٍ أن يستجيب بحالة "304 Not Modified" إذا لم تتغير البيانات، مما يسمح للذاكرة المؤقتة باستخدام نسختها المخزنة.

انتهاء الصلاحية وإعادة التحقق:

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

الشبكات الموزعة لخدمة المحتوى [CDNs] وتخزين الوكيل المؤقت:

  •  يمكن لشبكات التوزيع لخدمة المحتوى [CDNs] وذاكرات الوكيل المؤقتة تخزين الموارد أقرب إلى العميل، مما يقلل التأخير ويحسن وقت التحميل للمستخدمين المنتشرين عبر مناطق مختلفة.

HTTP Types of caches أنواع التخزين المؤقت HTTP

تحدد مواصفات تخزين HTTP المؤقت نوعين رئيسيين من التخزين المؤقت:

  •  التخزين المؤقت الخاص Private caches:

  •  التخزين المؤقت المشترك Shared cache:

HTTP Private caches التخزين المؤقت الخاص HTTP

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

Enhance privacy in caching

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

نص
Cache-Control: private

HTTP Shared cache التخزين المؤقت المشترك HTTP

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

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

يمكن تصنيف ذاكرات التخزين المشتركة بشكلٍ أكبر إلى ذاكرات التخزين المؤقت للوكيل Proxy caches وذاكرات التخزين المدارة Managed Caches.

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

  • ذاكرة التخزين المدارة Managed Caches: تقوم إدارة الشبكة أو الجهة المسؤولة عن النظام بالتحكم فيها مباشرةً. تُستخدم هذه الذاكرة للتخزين المؤقت للبيانات المهمة التي تحتاج إلى معالجة سريعة ودقيقة، مما يساعد في تحسين الأداء العام للنظام.

Make caching available to everyone

يسمح بتخزين المحتوى على نطاق واسع من قبل أي جهة لتسريع الوصول وتقليل الضغط على الخوادم.

نص
Cache-Control: public

Force validation before use

يتطلب التحقق من الخادم الأصلي قبل استخدام النسخة المخزنة مؤقتًا لضمان أن المحتوى محدث دائمًا.

نص
Cache-Control: no-cache

Prevent caching of sensitive data

يوجه مخازن HTTP المتوافقة إلى عدم تخزين الطلب أو الاستجابة المشمولة؛ لا يشفّر البيانات ولا يضمن الخصوصية أمام برمجيات خبيثة أو مخازن تتجاهل التوجيه.

نص
Cache-Control: no-store

Set the cache validity period to 2 hours

يضبط صلاحية التخزين المؤقت للمحتوى لمدة ساعتين دون الحاجة للتحقق من الخادم الأصلي.

max-age يحدد مدة حداثة الاستجابة وفق عمرها Age، وليس مدة احتفاظ إلزامية على القرص؛ قد يحذفها المخزن قبل ذلك. وتتقدم عليه s-maxage في المخزن المشترك عند وجوده.

نص
Cache-Control: max-age=7200

Check the validity of stored content before use

يلزم التحقق الناجح قبل إعادة استخدام الاستجابة بعد أن تصبح قديمة stale؛ لا يفرض التحقق عند كل استخدام وهي ما زالت حديثة fresh.

نص
Cache-Control: must-revalidate

Proxy servers check the validity of content

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

نص
Cache-Control: proxy-revalidate

Use the stored copy during the update for 1 minute

يسمح باستخدام الاستجابة القديمة حتى 60 ثانية بعد انتهاء حداثتها، مع محاولة التحقق في الخلفية؛ يضاف هذا الحد إلى مدة الحداثة ولا يعاد بدؤه مع كل طلب.

نص
Cache-Control: stale-while-revalidate=60

Use stored content in case of error for 1 minute

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

نص
Cache-Control: stale-if-error=60

"Improving performance with static caching routing"

يشير إلى أن الخادم لن يغيّر هذا التمثيل خلال مدة حداثته؛ بعد انتهاء المدة تعود قواعد إعادة التحقق المعتادة. لا يعني أن المحتوى ثابت إلى الأبد.

نص
Cache-Control: immutable

HTTP Proxy caches ذاكرة التخزين المؤقت للوكيل HTTP

تُعَدُّ مخابئ وكيل البروكسي HTTP Proxy caches أداةً هامةً لتحسين سرعة الوصول إلى الإنترنت، إذ تخزِّن نسخًا من المواقع لتمكين الوصول السريع لها دون الحاجة إلى الاتصال بالخادم الأساسي في كل مرة. تعتمد هذه الأداة على استقبال الطلبات من المستخدمين، والتحقق مما إذا كان المحتوى مطلوبًا مسبقًا ومخزنًا. إذا توفرت نسخة يجوز إعادة استخدامها وفق مفتاح التخزين وحداثتها وتوجيهاتها، فقد تُرسل للمستخدم، مما يقلل الضغط على الخوادم ويوفر الوقت.

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

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

HTTP Managed Caches ذاكرة التخزين المدارة HTTP

يتم نشر التخزين المؤقت المُدار HTTP Managed Caches من قبل مطوري الخدمات بهدف تخفيف العبء عن الخادم الأصلي وتقديم المحتوى بكفاءة. تتضمن الأمثلة على ذلك خوادم البروكسي العكسية، وشبكات توصيل المحتوى [CDNs]، والعاملين في الخدمة بالاقتران مع واجهة برمجة التطبيقات الخاصة بالتخزين المؤقت [Cache API].

تختلف خصائص التخزين المؤقت المُدار اعتمادًا على الأداة المستخدمة، حيث يمكنك عادةً التحكم في سلوك التخزين المؤقت من خلال رأس التحكم في التخزين المؤقت وملفات التكوين الخاصة بك أو اللوحات التحكمية.

Cache API في Service Worker لا يطبق تلقائيًا كل قواعد مخزن HTTP في المتصفح؛ على التطبيق تنفيذ سياسة الحفظ والإبطال المناسبة.

HTTP Benefits of Caching فوائد التخزين المؤقت HTTP

  •  تحسين الأداء والسرعة : يُعتبر التخزين المؤقت وسيلة فعّالة لتحسين سرعة تحميل الصفحات؛ فعند استخدام البيانات المخزنة مؤقتًا، يمكن تقليل الوقت المستغرق في جلب البيانات من الخادم الرئيسي هذا يؤدي إلى تسريع عرض الصفحات للمستخدمين.

  • تقليل الحمل على الخوادم : عند استخدام التخزين المؤقت بكفاءة، يُمكن تقليل عدد الطلبات المقدمة إلى الخادم الرئيسي هذا يعني تقليل الحمل على الخوادم، مما يسمح بإدارة عدد أكبر من المستخدمين في نفس الوقت.

  •  توفير النطاق الترددي : مع تقليل عدد البيانات التي يجب جلبها من الخادم، يُمكن توفير استخدام النطاق الترددي، مما يقلل من التكاليف المرتبطة بالنقل وكذلك يوفر أداءً أكثر استدامة.

  •  تجربة مستخدم أفضل : بفضل سرعة التحميل وتحسين الأداء، يحصل المستخدمون على تجربة أفضل وأكثر سلاسة، خاصةً في التطبيقات والصفحات التي تعتمد على المحتوى الثقيل.

  • الاتحاد مع شبكات التوصيل : يعمل التخزين المؤقت بشكل جيد مع شبكات توزيع المحتوى (CDN)، مما يساعد في توزيع المحتوى عبر مواقع جغرافية متعددة وزيادة سرعة التقديم للمستخدمين النهائيين.

  •  تحسين توافر المحتوى : إذا كان الخادم الأساسي غير متاح مؤقتًا، يمكن للمتصفح الاستمرار في عرض المحتوى المخزن مؤقتًا، مما يحسن من توافرية الخدمة.

عرض نسخة عند تعطل الخادم يخضع لتوجيهات التخزين وشروط السماح باستعمال stale؛ لا تسمح كل استجابة بذلك، ولا تتجاوز must-revalidate لمجرد انقطاع الشبكة.

HTTP Caching Headers روؤس التخزين المؤقت لـ HTTP

HTML

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…