Caching in HTTP

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

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

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

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

يتم استخدام رأس Cache-Control للسماح للعميل أو الخادم بإرسال مجموعة متنوعة من التوجيهات سواء في الطلب أو الاستجابة. تم تجاوز خوارزمية التخزين المؤقت الافتراضية بواسطة هذه التوجيهات. يتم تحديد توجيهات التخزين المؤقت في قائمة مفصولة بفواصل.

مثال

  1. Cache-control: no-cache  

يستخدم العميل توجيهات طلب ذاكرة التخزين المؤقت في طلب HTTP الخاص به 

على النحو التالي:

SNتوجيه طلب ووصف ذاكرة التخزين المؤقت
1no-cache
تشير إلى أن الاستجابة التي تم إرجاعها ولا يمكن استخدامها
لتلبية طلب لاحق لنفس عنوان URL.
2no-store
يشير إلى أن العميل لن يخزن أي شيء عن طلب العميل أو استجابة الخادم.
3max-age = seconds
يتم استخدامه للإشارة إلى أن العميل على استعداد لقبول استجابة
 لا يزيد عمرها عن الوقت المحدد بالثواني.
4max-state [= seconds]
تُستخدم للإشارة إلى أن العميل مستعد لقبول استجابة
 تجاوزت وقت انتهاء صلاحيتها. 
يجب ألا تنتهي صلاحيته
بأكثر من ذلك الوقت ، إذا أعطيت الثواني.
5min-fresh = seconds
تُستخدم للإشارة إلى أن العميل مستعد لقبول استجابة
 لا تقل مدة نضارتها عن عمرها الحالي زائدًا ، وهو الوقت المحدد بالثواني.
6no-transform
لا يحول الكيان الجسم.
7only-if-cached
لا يسترد بيانات جديدة. يمكن إرسال المستند عن
 طريق ذاكرة التخزين المؤقت فقط إذا كان في ذاكرة التخزين
المؤقت ويجب ألا يتصل بخادم الأصل لمعرفة ما إذا كان هناك نسخة أحدث.

يمكن للخادم استخدام توجيهات استجابة ذاكرة التخزين المؤقت في استجابة HTTP 

على النحو التالي:

SNتوجيهات استجابة ذاكرة التخزين المؤقت والوصف
1public
يشير إلى أن أي ذاكرة تخزين مؤقت قد تكون مخزنة مؤقتًا للاستجابة.
2private
يتم استخدامه للإشارة إلى أن جزءًا من رسالة الاستجابة
 أو كل رسالة الاستجابة مخصصة لمستخدم واحد.
 
يجب ألا يتم تخزينها مؤقتًا بواسطة ذاكرة تخزين مؤقت مشتركة.
3no-cache
يشير إلى أن الاستجابة التي تم إرجاعها لا يمكن
استخدامها لتلبية طلب لاحق لنفس عنوان URL.
4no-store
يشير إلى أن العميل لن يخزن أي شيء عن طلب العميل أو استجابة الخادم.
5no-transform
لا يحول entity-body.
6must-revalidate
يشير إلى أن ذاكرة التخزين المؤقت يجب
 أن تتحقق من حالة المستند القديم قبل استخدامه ،
ويجب عدم استخدام الملفات منتهية الصلاحية.
7proxy-revalidate
من الوكيل لكل من توجيهات إعادة التحقق من
الوكيل وتوجيه "يجب إعادة التحقق" نفس المعنى ،
باستثناء أنه لا ينطبق على ذاكرة التخزين المؤقت
لوكيل المستخدم غير المشترك.
8max-age = seconds
يتم استخدامه للإشارة إلى أن العميل على استعداد لقبول
 استجابة لا يزيد عمرها عن الوقت المحدد بالثواني.
9s-maxage = seconds
يتجاوز الحد الأقصى للعمر المحدد بواسطة التوجيهات الحد الأقصى
للعمر المحدد إما من خلال عنوان انتهاء الصلاحية
 أو توجيهات max-age. 
تتجاهل ذاكرة التخزين المؤقت
الخاصة دائمًا توجيهات s-management.

إرسال تعليق

أحدث أقدم

نموذج الاتصال