التخزين المؤقت في HTTP
يستخدم HTTP لأنظمة التشغيل الموزعة ، حيث يمكننا تحسين الأداء باستخدام ذاكرة التخزين المؤقت للاستجابة. يتضمن بروتوكول HTTP / 1.1 عددًا من العناصر التي تهدف إلى عمل التخزين المؤقت بشكل صحيح. نظرًا لأن هذه العناصر تتفاعل مع بعضها البعض ولا يمكن فصلها عن الجوانب الأخرى للبروتوكول ، فمن المفيد وصف تصميم التخزين المؤقت HTTP بشكل منفصل عن الوصف التفصيلي لرموز الاستجابة والأساليب والعناوين وما إلى ذلك.
يتم استخدام HTTP Caching بشكل أساسي لإزالة الحاجة إلى إرسال الطلب في كثير من الحالات. كما أنها تستخدم لإزالة الحاجة إلى إرسال ردود كاملة في العديد من الحالات الأخرى.
في HTTP ، تعد آليات التخزين المؤقت توجيهات ضمنية إلى ذاكرات التخزين المؤقت حيث يتم تحديد أوقات انتهاء الصلاحية وأدوات التحقق من قبل الخادم. لهذا الغرض ، نستخدم رأس Cache-Control.
يتم استخدام رأس Cache-Control للسماح للعميل أو الخادم بإرسال مجموعة متنوعة من التوجيهات سواء في الطلب أو الاستجابة. تم تجاوز خوارزمية التخزين المؤقت الافتراضية بواسطة هذه التوجيهات. يتم تحديد توجيهات التخزين المؤقت في قائمة مفصولة بفواصل.
مثال
يستخدم العميل توجيهات طلب ذاكرة التخزين المؤقت في طلب HTTP الخاص به
على النحو التالي:
SN | توجيه طلب ووصف ذاكرة التخزين المؤقت |
---|---|
1 | no-cache تشير إلى أن الاستجابة التي تم إرجاعها ولا يمكن استخدامها لتلبية طلب لاحق لنفس عنوان URL. |
2 | no-store يشير إلى أن العميل لن يخزن أي شيء عن طلب العميل أو استجابة الخادم. |
3 | max-age = seconds يتم استخدامه للإشارة إلى أن العميل على استعداد لقبول استجابة لا يزيد عمرها عن الوقت المحدد بالثواني. |
4 | max-state [= seconds] تُستخدم للإشارة إلى أن العميل مستعد لقبول استجابة تجاوزت وقت انتهاء صلاحيتها. يجب ألا تنتهي صلاحيته بأكثر من ذلك الوقت ، إذا أعطيت الثواني. |
5 | min-fresh = seconds تُستخدم للإشارة إلى أن العميل مستعد لقبول استجابة لا تقل مدة نضارتها عن عمرها الحالي زائدًا ، وهو الوقت المحدد بالثواني. |
6 | no-transform لا يحول الكيان الجسم. |
7 | only-if-cached لا يسترد بيانات جديدة. يمكن إرسال المستند عن طريق ذاكرة التخزين المؤقت فقط إذا كان في ذاكرة التخزين المؤقت ويجب ألا يتصل بخادم الأصل لمعرفة ما إذا كان هناك نسخة أحدث. |
يمكن للخادم استخدام توجيهات استجابة ذاكرة التخزين المؤقت في استجابة HTTP
على النحو التالي:
SN | توجيهات استجابة ذاكرة التخزين المؤقت والوصف |
---|---|
1 | public يشير إلى أن أي ذاكرة تخزين مؤقت قد تكون مخزنة مؤقتًا للاستجابة. |
2 | private يتم استخدامه للإشارة إلى أن جزءًا من رسالة الاستجابة أو كل رسالة الاستجابة مخصصة لمستخدم واحد. يجب ألا يتم تخزينها مؤقتًا بواسطة ذاكرة تخزين مؤقت مشتركة. |
3 | no-cache يشير إلى أن الاستجابة التي تم إرجاعها لا يمكن استخدامها لتلبية طلب لاحق لنفس عنوان URL. |
4 | no-store يشير إلى أن العميل لن يخزن أي شيء عن طلب العميل أو استجابة الخادم. |
5 | no-transform لا يحول entity-body. |
6 | must-revalidate يشير إلى أن ذاكرة التخزين المؤقت يجب أن تتحقق من حالة المستند القديم قبل استخدامه ، ويجب عدم استخدام الملفات منتهية الصلاحية. |
7 | proxy-revalidate من الوكيل لكل من توجيهات إعادة التحقق من الوكيل وتوجيه "يجب إعادة التحقق" نفس المعنى ، باستثناء أنه لا ينطبق على ذاكرة التخزين المؤقت لوكيل المستخدم غير المشترك. |
8 | max-age = seconds يتم استخدامه للإشارة إلى أن العميل على استعداد لقبول استجابة لا يزيد عمرها عن الوقت المحدد بالثواني. |
9 | s-maxage = seconds يتجاوز الحد الأقصى للعمر المحدد بواسطة التوجيهات الحد الأقصى للعمر المحدد إما من خلال عنوان انتهاء الصلاحية أو توجيهات max-age. تتجاهل ذاكرة التخزين المؤقت الخاصة دائمًا توجيهات s-management. |