دعم رؤوس استجابة HTTP

أنت الآن بصدد الاطّلاع على مستندات 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 العنصر <UseResponseCacheHeaders> على true، يمكن تخزين الاستجابة مؤقتًا لعدد الثواني المحدّد في هذا التوجيه.

يتم إلغاء هذا التوجيه من خلال التوجيه s-maxage، كما يلغي العنوان Expires. يمكن أيضًا إلغاؤه من خلال العنصر <ExpirySettings> في السياسة. لمعرفة التفاصيل، يُرجى الاطّلاع على "ضبط انتهاء صلاحية إدخال ذاكرة التخزين المؤقت" و<UseResponseCacheHeaders> في سياسة Response Cache.

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 العنصر <UseResponseCacheHeaders> على true، يمكن تخزين الاستجابة مؤقتًا لعدد الثواني المحدّد في هذا التوجيه.

يلغي هذا التوجيه التوجيه max-age والعنوان Expires يمكن إلغاؤه من خلال العنصر <ExpirySettings> في السياسة. لمعرفة التفاصيل، يُرجى الاطّلاع على "ضبط انتهاء صلاحية إدخال ذاكرة التخزين المؤقت" و<UseResponseCacheHeaders> في سياسة Response Cache.

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 واحدة أو أكثر
  1. يستردّ Apigee Edge أي إدخالات غير منتهية الصلاحية في ذاكرة التخزين المؤقت للمورد المحدّد و يقارن أي علامات ETag قوية في إدخالات ذاكرة التخزين المؤقت هذه بالعلامات المحدّدة في الـ If-Match
  2. إذا تم العثور على تطابق، يتم إرجاع إدخال ذاكرة التخزين المؤقت.
  3. إذا لم يتم العثور على تطابق، يتم تمرير الطلب إلى الخادم الأصلي.
يحدّد العنوان If-Match الرمز "*" يتم تمرير الطلب إلى الخادم الأصلي لضمان حصول أيّ من إمكانات التخزين المؤقت الأصلية على فرصة لمعالجة الطلب
تم العثور على إدخال في ذاكرة التخزين المؤقت يتضمّن عنوان URI للطلب نفسه، ولكنّه لا يحتوي إلا على علامات ETag ضعيفة يجب إعادة التحقق من الإدخال من قِبل الخادم الأصلي قبل إرجاعه إلى الـ عميل
تأتي علامات ETag من الخادم الأصلي. يتم إرجاع علامة ETag إلى العميل بدون تغيير

If-None-Match

باستخدام العنوان If-None-Match، يكون الكيان المخزّن مؤقتًا حاليًا إذا كانت علامة ETag في العنوان لا تتطابق مع علامة ETag المخزّنة مؤقتًا. يتم تمرير الطلبات غير طلبات GET التي تتضمّن هذا العنوان إلى الخادم الأصلي.

إذا تلقّى Edge طلب GET واردًا يتضمّن هذا العنوان:

إذا بعد ذلك
يحدّد العنوان If-None-Match علامة ETag واحدة أو أكثر
  1. يستردّ Apigee Edge أي إدخالات غير منتهية الصلاحية في ذاكرة التخزين المؤقت لعنوان URI المحدّد ويقارن أي علامات ETag قوية في إدخالات ذاكرة التخزين المؤقت هذه بالعلامات المحدّدة في العنوان If-None-Match.
  2. إذا تم العثور على تطابق، يعرض Edge الحالة 304 Not Modified. إذا لم يتم العثور على تطابق، يمرّر Edge الطلب إلى الخادم الأصلي.

يحدّد العنوان If-None-Match الرمز "*" ويتوفّر إدخال غير منتهية الصلاحية في ذاكرة التخزين المؤقت لـ عنوان URI المطلوب

يعرض 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.