أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X. info
يصف هذا الموضوع كيفية تعامُل Edge مع عناوين التخزين المؤقت HTTP/1.1 عند استخدام سياسة ResponseCache. تتوفّر في Apigee Edge حاليًا مجموعة فرعية من عناوين التخزين المؤقت والتوجيهات HTTP/1.1 (الميزات غير المتوافقة مدرَجة في هذا الموضوع) التي يتم تلقّيها من خوادم الخلفية المستهدَفة (الخوادم الأصلية)
بالإضافة إلى ذلك، يتّخذ Edge إجراءً استنادًا إلى توجيهات عناوين معيّنة. في بعض الحالات،
تلغي عناوين التخزين المؤقت HTTP/1.1 هذه أي سلوك محدّد في سياسة ResponseCache.
على سبيل المثال، إذا تم إرجاع عنوان Cache-Control من خادم خلفية، يمكنك
أن تجعل توجيه s-maxage في العنوان يلغي بشكل محتمل إعدادات انتهاء الصلاحية الأخرى
في السياسة.
| العنوان | الدعم |
|---|---|
| Cache-Control | متوافق مع الردود التي يتم إرجاعها من خوادم الخلفية الأصلية، ولكن ليس مع طلبات العميل. تتوفّر في Edge مجموعة فرعية من التوجيهات. |
| Expires | متوافقة. يمكن إلغاؤها. |
| علامات الكيان (ETags) | سلوك محدّد لـ If-Match و If-None-Match. |
| If-Modified-Since | في طلبات GET، يتم تمرير العنوان إلى الخادم الأصلي حتى إذا كان هناك إدخال صالح في ذاكرة التخزين المؤقت. |
| Accept-Encoding | يرسل Edge ردودًا مضغوطة أو غير مضغوطة استنادًا إلى العناوين الواردة |
Cache-Control
لا يتيح Apigee Edge استخدام عنوان Cache-Control إلا في الردود التي يتم إرجاعها من
خوادم الخلفية الأصلية (تسمح مواصفات HTTP/1.1 باستخدام عناوين Cache-Control في كل من
طلبات العميل وردود الخادم الأصلي). يمكن أن تتضمّن الخوادم الأصلية نقاط النهاية المستهدَفة
المحدّدة في وكيل Apigee Edge API وتلك التي تم إنشاؤها باستخدام طلبات TargetServer API.
قيود التوافق مع Cache-Control
يتيح Apigee Edge استخدام مجموعة فرعية من إمكانات عنوان استجابة Cache-Control المحدّدة في مواصفات HTTP/1.1. يُرجى مراعاة ما يلي:
- لا يتيح Apigee Edge استخدام عناوين
Cache-Controlالتي تصل مع طلبات العميل الواردة. - لا يتيح Apigee Edge استخدام سوى ذاكرات التخزين المؤقت العامة. (وفقًا لمواصفات HTTP
، يمكن أن يكون
Cache-Controlعامًا (مشتركًا) أو خاصًا (مستخدم واحد ).) - لا يتيح Apigee Edge استخدام سوى مجموعة فرعية من
Cache-Controlتوجيهات استجابة في مواصفات HTTP/1.1. لمعرفة التفاصيل، يُرجى الاطّلاع على التوافق مع توجيهات عنوان استجابة Cache-Control.
التوافق مع توجيهات عنوان استجابة Cache-Control
يتيح Apigee استخدام مجموعة فرعية من التوجيهات من مواصفات HTTP/1.1 في الردود من الخوادم الأصلية. يصف الجدول التالي التوافق مع توجيهات عنوان استجابة HTTP Cache-Control في Apigee Edge.
لمزيد من المعلومات التفصيلية عن التوجيهات المدرَجة هنا، يُرجى الاطّلاع على Cache-Control في مواصفات HTTP/1.1.
| توجيه Cache-Control | كيفية معالجة Apigee Edge للتوجيه |
cache-extension |
غير متوافقة. |
max-age |
إذا ضبطت سياسة ResponseCache العنصر يتم إلغاء هذا التوجيه من خلال التوجيه |
must-revalidate |
غير متوافقة. يحذف Apigee Edge جميع إدخالات ذاكرة التخزين المؤقت بمجرد انتهاء صلاحيتها. |
no-cache |
يخزّن Edge الاستجابة الأصلية مؤقتًا، ولكن يجب إعادة التحقق منها باستخدام الخادم الأصلي قبل استخدامها لتلبية أي طلبات لاحقة من العميل. تسمح هذه القاعدة للمصدر بإرجاع استجابة 304 Not Modified للإشارة إلى أنّه يجب إرجاع الاستجابة من ذاكرة التخزين المؤقت، ما يؤدي إلى توفير المعالجة المطلوبة لإرجاع الاستجابة بأكملها. إذا أرجع الخادم الأصلي استجابة كاملة، فإنّها تحل محل إدخال ذاكرة التخزين المؤقت الحالي. يتم تجاهل أي أسماء حقول محدّدة باستخدام هذا التوجيه. |
no-store |
غير متوافقة. |
no-transform |
غير متوافقة. |
private |
غير متوافقة. إذا تم تلقّي هذا التوجيه، لا يتم تخزين الاستجابة الأصلية مؤقتًا. يتم تجاهل أي أسماء حقول. |
proxy-revalidate |
غير متوافقة. يحذف Apigee Edge جميع إدخالات ذاكرة التخزين المؤقت بمجرد انتهاء صلاحيتها. |
public |
يخزّن Edge الاستجابة الأصلية مؤقتًا، حتى إذا كانت توجيهات أخرى تشير إلى خلاف ذلك. وفقًا لمواصفات HTTP/1.1، الاستثناء الوحيد لهذه القاعدة هو إذا كانت الاستجابة تتضمّن عنوان Authorization. |
s-maxage |
إذا ضبطت سياسة ResponseCache العنصر يلغي هذا التوجيه التوجيه |
Expires
عند ضبط العلامة UseResponseCacheHeaders في سياسة ResponseCache على
true، يمكن أن يستخدم Edge العنوان Expires لتحديد مدة البقاء
(TTL) لإدخال مخزّن مؤقتًا. يحدّد هذا العنوان تاريخًا/وقتًا يُعتبر بعدهما إدخال ذاكرة التخزين المؤقت للاستجابة
قديمًا. يسمح هذا العنوان للخوادم بالإشارة إلى الوقت المناسب لإرجاع قيمة مخزّنة مؤقتًا
استنادًا إلى طابع زمني.
تتم وصف تنسيقات التاريخ المقبولة للعنوان Expires في مواصفات HTTP/1.1. على سبيل المثال:
Expires: Thu, 01 Dec 1994 16:00:00 GMT
لمعرفة معلومات مفصّلة عن تنسيقات التاريخ/الوقت في HTTP، يُرجى الاطّلاع على تنسيقات التاريخ/الوقت في مواصفات HTTP/1.1.
لمزيد من المعلومات عن العنوان Expires، يُرجى الاطّلاع على
تعريفات حقول العنوان
في مواصفات HTTP/1.1.
ETag
علامة الكيان (ETag) هي معرّف مرتبط بمورد مطلوب. باستخدام علامة ETag، يمكن للخادم تحديد ما إذا كان المورد المطلوب والمورد المخزّن مؤقتًا المرتبط به متطابقَين. على سبيل المثال، يمكن للخادم إعادة تخزين الاستجابة مؤقتًا إذا لم تكن متطابقة مع المحتوى المخزّن مؤقتًا حاليًا. يمكنه إرجاع المورد المخزّن مؤقتًا إذا كانت علامات ETag متطابقة.
عندما تُرسِل نقطة نهاية مستهدَفة استجابة إلى Edge تتضمّن علامة ETag، يخزّن Edge علامة ETag مؤقتًا مع الاستجابة.
يمكنك الاطّلاع على مزيد من المعلومات عن علامات الكيان في مَعلمات البروتوكول في مواصفات HTTP/1.1.
If-Match
باستخدام عنوان طلب If-Match، يكون الكيان المخزّن مؤقتًا حاليًا إذا كانت علامة ETag في الـ
عنوان متطابقة مع علامة ETag المخزّنة مؤقتًا. يتم تمرير أي طلبات غير طلبات GET التي تحدّد عنوان If-Match
إلى الخادم الأصلي لضمان حصول أيّ من إمكانات التخزين المؤقت الأصلية على
فرصة لمعالجة الطلب.
يمكنك الاطّلاع على مزيد من المعلومات عن If-Match في
تعريفات حقول العنوان
في مواصفات HTTP/1.1.
إذا تلقّى Edge طلب GET واردًا من عميل يتضمّن عنوان If-Match:
| إذا | بعد ذلك |
|---|---|
يحدّد العنوان If-Match علامة ETag واحدة أو أكثر |
|
يحدّد العنوان If-Match الرمز "*" |
يتم تمرير الطلب إلى الخادم الأصلي لضمان حصول أيّ من إمكانات التخزين المؤقت الأصلية على فرصة لمعالجة الطلب |
| تم العثور على إدخال في ذاكرة التخزين المؤقت يتضمّن عنوان URI للطلب نفسه، ولكنّه لا يحتوي إلا على علامات ETag ضعيفة | يجب إعادة التحقق من الإدخال من قِبل الخادم الأصلي قبل إرجاعه إلى الـ عميل |
| تأتي علامات ETag من الخادم الأصلي. | يتم إرجاع علامة ETag إلى العميل بدون تغيير |
If-None-Match
باستخدام العنوان If-None-Match، يكون الكيان المخزّن مؤقتًا حاليًا إذا كانت علامة ETag في العنوان
لا تتطابق مع علامة ETag المخزّنة مؤقتًا. يتم تمرير الطلبات غير طلبات GET التي تتضمّن هذا
العنوان إلى الخادم الأصلي.
إذا تلقّى Edge طلب GET واردًا يتضمّن هذا العنوان:
| إذا | بعد ذلك |
|---|---|
يحدّد العنوان If-None-Match علامة ETag واحدة أو أكثر |
|
|
يحدّد العنوان |
يعرض Edge الحالة 304 Not Modified |
| تم العثور على إدخال في ذاكرة التخزين المؤقت يتضمّن عنوان URI للطلب نفسه، ولكنّه لا يحتوي إلا على علامات ETag ضعيفة | يجب إعادة التحقق من الإدخال من قِبل الخادم الأصلي قبل أن يعرضه Edge للعميل |
| يتلقّى Edge علامة ETag من خادم المصدر | يتم إرجاع علامة ETag إلى العميل بدون تغيير |
If-Modified-Since
إذا تلقّى Apigee Edge عنوان If-Modified-Since في طلب استرداد بيانات باستخدام GET، يتم تمريره إلى خادم المصدر حتى إذا كان هناك إدخال صالح في ذاكرة التخزين المؤقت.
يضمن ذلك أخذ أي تعديلات على مورد لم تمر عبر Apigee Edge في الاعتبار. إذا أرجع الخادم الأصلي كيانًا جديدًا، يستبدل Edge إدخال ذاكرة التخزين المؤقت الحالي
بالقيمة الجديدة. إذا أرجع الخادم الحالة 304 Not Modified، يعرض Edge قيمة الاستجابة إذا كان العنوان Last-Modified للاستجابة المخزّنة مؤقتًا يشير إلى أنّه لم يتم تغييرها.
Accept-Encoding
عندما يتضمّن طلب وارد العنوان Accept-Encoding مع القيم
gzip أو deflate أو compress، يستجيب الخادم الأصلي ببيانات مضغوطة. عندما تصل الطلبات اللاحقة بدون العناوين Accept-Encoding،
فإنّها تتوقّع استجابة غير مضغوطة. تستطيع آلية تخزين الاستجابة مؤقتًا في Apigee إرسال
استجابات مضغوطة وغير مضغوطة استنادًا إلى العناوين الواردة بدون الرجوع إلى الخادم الأصلي.
يمكنك إلحاق قيم عنوان Accept بمفاتيح ذاكرة التخزين المؤقت لجعل المفاتيح أكثر وضوحًا لـ كل عنصر مخزّن مؤقتًا. لمزيد من التفاصيل، يُرجى الاطّلاع على "إعداد مفتاح ذاكرة التخزين المؤقت" في سياسة Response Cache.