سياسة رد ذاكرة التخزين المؤقت

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

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

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

وبالنسبة إلى التخزين المؤقت القصير المدى للجمهور العام، ننصحك باستخدام سياسة تعبئة ذاكرة التخزين المؤقت. يتم استخدام هذه السياسة بالتزامن مع سياسة البحث عن ذاكرة التخزين المؤقت (لقراءة إدخالات ذاكرة التخزين المؤقت) وسياسة إلغاء صلاحية ذاكرة التخزين المؤقت (لإلغاء صلاحية الإدخالات).

شاهِد هذا الفيديو للاطّلاع على مقدمة عن سياسة ذاكرة التخزين المؤقت للاستجابة.

عيّنات

ذاكرة التخزين المؤقت لمدة 10 دقائق

يوضح هذا النموذج كيفية الاحتفاظ بالردود المخزّنة مؤقتًا لمدة 10 دقائق.

تخيل أن لديك واجهة برمجة تطبيقات على عنوان URL التالي:

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

أنت تستخدم معلمة طلب البحث w كمفتاح لذاكرة التخزين المؤقت. يتحقّق Apigee Edge من قيمة معلَمة طلب البحث w كلما تم تلقّي طلب. إذا كانت هناك استجابة صالحة (أي غير منتهية الصلاحية) في ذاكرة التخزين المؤقت، يتم عرض رسالة الاستجابة المخزّنة مؤقتًا إلى البرنامج الذي قدّم الطلب.

لنفترض الآن أن لديك سياسة ResponseCache تم ضبطها على النحو التالي.

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

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

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

تخطي البحث عن ذاكرة التخزين المؤقت

يعرض المثال التالي كيفية تخطي بحث ذاكرة التخزين المؤقت وإعادة تحميل ذاكرة التخزين المؤقت. يمكنك أيضًا الاطّلاع على هذا الفيديو حول استخدام EscapeCacheLookup.

يتم تقييم الشرط الاختياري EscapeCacheLookup (إذا تم إعداده) في مسار الطلب. إذا تم تقييم الشرط إلى "صحيح"، يتم تخطي البحث عن ذاكرة التخزين المؤقت وإعادة تحميل ذاكرة التخزين المؤقت.

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

على سبيل المثال، تخيل عملية اتصال بواجهة برمجة تطبيقات على عنوان URL التالي:

'http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778' -H "bypass-cache:true"

تخيَّل الآن سياسة ResponseCache التالية التي تم ضبطها على هذا الخادم الوكيل. ويتم ضبط شرط تجاوز ذاكرة التخزين المؤقت على "صحيح".

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <!-- Explicitly refresh the cached response -->
    <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

لمزيد من المعلومات عن الشروط، يُرجى الاطّلاع على متغيّرات التدفق وشروطها.

مرجع العنصر

يصف مرجع العنصر عناصر السياسة وسماتها.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" />
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSeconds ref="flow.variable.here">300</TimeoutInSeconds>
    </ExpirySettings>
    <CacheResource>cache_to_use</CacheResource>
    <CacheLookupTimeoutInSeconds/>
    <ExcludeErrorResponse/>
    <SkipCacheLookup/>
    <SkipCachePopulation/>
    <UseAcceptHeader/>
    <UseResponseCacheHeaders/>
</ResponseCache>

سمات <ResponseCache>

<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">

يوضِّح الجدول التالي السمات الشائعة لجميع العناصر الرئيسية للسياسة:

السمة الوصف تلقائي التواجد في المنزل
name

الاسم الداخلي للسياسة وقد تحتوي قيمة السمة name على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. لا يمكن أن تتجاوز هذه القيمة 255 حرفًا.

ويمكنك اختياريًا استخدام العنصر <DisplayName> لتصنيف السياسة في محرِّر الخادم الوكيل لواجهة المستخدم الإدارية باستخدام اسم مختلف للغة طبيعية.

لا ينطبق مطلوبة
continueOnError

اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ السياسة. وهو سلوك متوقّع لمعظم السياسات.

اضبط القيمة على true لمواصلة تنفيذ التدفق حتى بعد تعذُّر تنفيذ السياسة.

false إجراء اختياري
enabled

اضبط القيمة على true لفرض السياسة.

اضبط القيمة على false من أجل إيقاف السياسة. ولن يتم فرض السياسة حتى إذا ظلت مرتبطة بمسار.

صحيح إجراء اختياري
async

تم إيقاف هذه السمة نهائيًا.

false منهي العمل به

العنصر <DisplayName>

استخدِم هذه السمة بالإضافة إلى السمة name لتصنيف السياسة في محرِّر الخادم الوكيل لواجهة المستخدم الإدارية باستخدام اسم مختلف بلغة طبيعية.

<DisplayName>Policy Display Name</DisplayName>
تلقائي

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم استخدام قيمة السمة name الخاصة بالسياسة.

التواجد في المنزل إجراء اختياري
Type سلسلة

العنصر <CacheKey>

تحدِّد هذه السياسة مؤشرًا فريدًا يشير إلى جزء من البيانات المخزَّنة في ذاكرة التخزين المؤقت.

يقتصر حجم مفاتيح ذاكرة التخزين المؤقت على 2 كيلوبايت.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

الخيار التلقائي:

لا ينطبق

الحضور:

مطلوبة

النوع:

لا ينطبق

تنشئ <CacheKey> اسم كل جزء من البيانات المخزنة في ذاكرة التخزين المؤقت. ويتم غالبًا ضبط المفتاح باستخدام قيمة من عناوين الكيانات أو مَعلمات طلب البحث. في تلك الحالات، قد تطلب من السمة ref التي تشير إلى العنصر أن تحدد متغيّرًا يحتوي على القيمة الأساسية.

في وقت التشغيل، يتم إرفاق قيم <KeyFragment> إما بقيمة العنصر <Scope> أو بقيمة <Prefix>. على سبيل المثال، يؤدي ما يلي إلى عرض مفتاح ذاكرة التخزين المؤقت للسمة UserToken__apiAccessToken__<value_of_client_id>:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

ويمكنك استخدام العنصر <CacheKey> بالاقتران مع <Prefix> و<Scope>. لمزيد من المعلومات، يمكنك الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

عنصر <CacheLookupTimeoutInSeconds>

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

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

الخيار التلقائي:

30

الحضور:

اختياري

النوع:

عدد صحيح

عنصر <CacheResource>

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

<CacheResource>cache_to_use</CacheResource>

الخيار التلقائي:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

لمزيد من المعلومات حول إعداد ذاكرات التخزين المؤقت، راجع إنشاء ذاكرة تخزين مؤقت للبيئة وتعديلها.

العنصر <CacheKey>/<KeyFragment>

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

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

الخيار التلقائي:

لا ينطبق

الحضور:

اختياري

النوع:

لا ينطبق

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

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

ويمكنك استخدام العنصر <KeyFragment> بالاقتران مع <Prefix> و<Scope>. لمزيد من المعلومات، يمكنك الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

السمات

السمة النوع تلقائي مطلوبة الوصف
المرجع سلسلة لا

تمثّل هذه السمة المتغيّر المطلوب الحصول على القيمة منه. يجب عدم استخدامها إذا كان هذا العنصر يحتوي على قيمة حرفية.

العنصر <CacheKey>/<Prefix>

تُحدِّد قيمة لاستخدامها كبادئة مفتاح ذاكرة التخزين المؤقت.

<Prefix>prefix_string</Prefix>

الخيار التلقائي:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

استخدِم هذه القيمة بدلاً من <Scope> عندما تريد تحديد قيمة لك بدلاً من قيمة <Scope> العددية. وفي حال تحديدها، يضيف <Prefix> قيمة مفتاح ذاكرة التخزين المؤقت للإدخالات المكتوبة في ذاكرة التخزين المؤقت. تؤدي قيمة العنصر <Prefix> إلى إلغاء قيمة العنصر <Scope>.

ويمكنك استخدام العنصر <Prefix> بالاقتران مع <CacheKey> و<Scope>. لمزيد من المعلومات، يمكنك الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

عنصر <REMOVEErrorResponse>

في الوقت الحالي، تخزِّن هذه السياسة تلقائيًا استجابات HTTP بأي رمز حالة ممكن. وهذا يعني أنه يتم تخزين كل من استجابات النجاح والخطأ مؤقتًا. على سبيل المثال، يتم تلقائيًا التخزين المؤقت للردود التي تتضمّن رمزَي الحالة 2xx و3xx.

اضبط هذا العنصر على true إذا كنت لا تريد تخزين الردود المستهدَفة التي تحتوي على رموز حالة خطأ HTTP في ذاكرة التخزين المؤقت، فقط إذا كان هذا العنصر صحيحًا، سيتم تخزين الاستجابات التي تتضمّن رموز الحالة من 200 إلى 205 فقط. وهذه هي رموز حالة HTTP الوحيدة التي يحتسبها Edge كرموز "نجاح"، ولا يمكنك تغيير عملية الربط هذه.

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

ملاحظة: في إصدار مستقبلي (سيتم تحديده)، سيتغير الإعداد التلقائي لهذا العنصر إلى "صحيح". يمكنك الاطّلاع على ملاحظات إصدار Apigee لمعرفة التفاصيل.

<ExcludeErrorResponse>true</ExcludeErrorResponse>

الخيار التلقائي:

false

الحضور:

اختياري

النوع:

منطقي

العنصر <ExpirySettings>

تُحدِّد هذه السياسة وقت انتهاء صلاحية إدخال ذاكرة التخزين المؤقت. عند استخدام العنصر <TimeoutInSeconds>، يتم تجاهل كل من <TimeOfDay> و<ExpiryDate>.

<ExpirySettings>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
</ExpirySettings>

الخيار التلقائي:

لا ينطبق

الحضور:

مطلوبة

النوع:

لا ينطبق

العنصر <ExpirySettings>/<ExpiryDate>

تُحدِّد التاريخ الذي يجب أن تنتهي فيه صلاحية إدخال ذاكرة التخزين المؤقت. استخدِم النموذج mm-dd-yyyy. عند توفّر العنصر التابع لهذا العنصر، <TimeoutInSeconds>، تلغي السمة <ExpiryDate>.

<ExpirySettings>
    <ExpiryDate ref="{date_variable}">expiration_date</ExpiryDate>
</ExpirySettings>

الخيار التلقائي:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

السمات

<ExpiryDate ref="" />
السمة الوصف تلقائي التواجد في المنزل النوع
المرجع

تمثّل هذه السمة المتغيّر المطلوب الحصول على القيمة منه. يجب عدم استخدامها إذا كان هذا العنصر يحتوي على قيمة حرفية.

لا ينطبق اختياري سلسلة

العنصر <ExpirySettings>/<TimeOfDay>

الوقت من اليوم الذي ستنتهي فيه صلاحية إدخال ذاكرة التخزين المؤقت. استخدِم النموذج hh:mm:ss . عند توفّر العنصر التابع لهذا العنصر، <TimeoutInSeconds>، تلغي السمة <TimeOfDay>.

أدخِل الوقت من اليوم بالتنسيق HH:mm:ss، حيث يمثل HH الساعة بتنسيق 24 ساعة. على سبيل المثال، 14:30:00 لمدة 2:30 بعد الظهر.

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

<ExpirySettings>
    <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

الخيار التلقائي:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

السمات

السمة الوصف تلقائي التواجد في المنزل النوع
المرجع متغير بقيمة وقت انتهاء الصلاحية. لا ينطبق اختياري سلسلة

العنصر <ExpirySettings>/<TimeoutInSec>

عدد الثواني التي تنتهي بعدها صلاحية إدخال ذاكرة التخزين المؤقت.

عنصر <ExpirySettings>/<TimeoutInSeconds>

عدد الثواني التي تنتهي بعدها صلاحية إدخال ذاكرة التخزين المؤقت. وعند توفُّر هذا العنصر، يلغي العنصران الفرعان <TimeOfDay> و<ExpiryDate>.

<ExpirySettings>
    <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
</ExpirySettings>

ملاحظة: قدِّم قيمة مهلة تلقائية لاستخدامها إذا لم يتلقَّ المرجع قيمة من duration_variable.

الخيار التلقائي:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

السمات

السمة الوصف تلقائي التواجد في المنزل النوع
المرجع المتغير بقيمة المهلة.
لا ينطبق
اختياري سلسلة

عنصر <Scope>

تعداد يُستخدَم لإنشاء بادئة لمفتاح ذاكرة التخزين المؤقت عندما لا يتوفّر عنصر <Prefix> في العنصر <CacheKey>

<Scope>scope_enumeration</Scope>

الخيار التلقائي:

"حصرية"

الحضور:

اختياري

النوع:

سلسلة

يحدد الإعداد <Scope> مفتاح ذاكرة تخزين مؤقت تتم إضافته قبل قيمة <Scope>. على سبيل المثال، سيتخذ مفتاح ذاكرة التخزين المؤقت الشكل التالي عند ضبط النطاق على Exclusive : orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

إذا كان العنصر <Prefix> متوفّرًا في <CacheKey>، سيحلّ محلّ قيمة العنصر <Scope>. وتشمل القيم الصالحة التعداد أدناه.

ويمكنك استخدام العنصر <Scope> بالاقتران مع <CacheKey> و<Prefix>. لمزيد من المعلومات، يمكنك الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

القِيم المقبولة

قيمة النطاق الوصف
Global

تتم مشاركة مفتاح ذاكرة التخزين المؤقت بين كل الخوادم الوكيلة لواجهة برمجة التطبيقات المنشورة في البيئة. تتم إضافة مفتاح ذاكرة التخزين المؤقت بالتنسيق orgName __ envName __.

إذا عرَّفت إدخال <CacheKey> باستخدام apiAccessToken <KeyFragment> والنطاق <Global>، سيتم تخزين كل إدخال على أنّه orgName__envName__apiAccessToken، متبوعة بالقيمة التسلسلية لرمز الدخول. بالنسبة إلى خادم وكيل لواجهة برمجة التطبيقات تم نشره في بيئة تُسمى "test" في مؤسسة تُسمّى "apifactory"، سيتم تخزين رموز الدخول ضمن مفتاح ذاكرة التخزين المؤقت التالي: apifactory__test__apiAccessToken.

Application

يتم استخدام اسم الخادم الوكيل لواجهة برمجة التطبيقات كبادئة.

تتم إضافة مفتاح ذاكرة التخزين المؤقت بالتنسيق orgName__envName__apiProxyName.

Proxy

يتم استخدام إعداد ProxyEndpoint كبادئة.

تتم إضافة مفتاح ذاكرة التخزين المؤقت على النحو التالي: orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName .

Target

يتم استخدام ضبط نقطة النهاية كبادئة.

إضافة مفتاح ذاكرة التخزين المؤقت بالتنسيق orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName .

Exclusive

تلقائي: وهذه الطريقة هي الأكثر تحديدًا، وبالتالي تشكّل خطرًا ضئيلاً بحدوث تضارب في مساحات الاسم ضمن ذاكرة تخزين مؤقت معيّنة.

تكون البادئة واحدة من شكلين:

  • في حال إرفاق السياسة بمسار ProxyEndpoint، ستكون البادئة على شكل ApiProxyName_ProxyEndpointName.
  • في حال إرفاق السياسة على TargetEndpoint، ستظهر البادئة ApiProxyName_TargetName.

إضافة مفتاح ذاكرة التخزين المؤقت على النحو التالي: orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

على سبيل المثال، قد تبدو السلسلة الكاملة على النحو التالي:

apifactory__test__weatherapi__16__default__apiAccessToken
.

العنصر <تخطيCacheLookup>

تحدّد هذه العلامة تعبيرًا إذا تم تقييمه على "true" في وقت التشغيل، ويحدّد أنه يجب تخطّي بحث ذاكرة التخزين المؤقت وإعادة تحميل ذاكرة التخزين المؤقت. يمكنك أيضًا الاطّلاع على هذا الفيديو حول استخدام skiCacheLookup.

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

الخيار التلقائي:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

من المثال التالي، إذا تم ضبط متغيّر تجاوز ذاكرة التخزين المؤقت على "صحيح" في عنوان وارد، يتم تخطّي بحث ذاكرة التخزين المؤقت وتتم إعادة تحميل ذاكرة التخزين المؤقت.

<SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>

العنصر <تخطيCacheCache>

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

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

الخيار التلقائي:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

على سبيل المثال، يمكن في ما يلي تخطّي الكتابة في ذاكرة التخزين المؤقت إذا كان رمز حالة الاستجابة 400 أو أعلى:

<SkipCachePopulation>response.status.code >= 400</SkipCachePopulation>

العنصر <UseAcceptHeader>

اضبط القيمة على true ليتم إلحاق مفتاح ذاكرة التخزين المؤقت لإدخال ذاكرة التخزين المؤقت للاستجابة بقيم من عناوين "قبول" الردود.

يستخدم Edge عناوين الطلبات Accept وAccept-Encoding وAccept-Language وAccept-Charset عند احتساب مفتاح ذاكرة التخزين المؤقت. ويمنع هذا الأسلوب العميل من الحصول على نوع وسائط لم يطلبه.

على سبيل المثال، ضع في اعتبارك ما إذا كان هناك طلبان واردان من عنوان URL نفسه، حيث يقبل الطلب الأول تنسيق gzip والثاني لا يقبله. سيتم تخزين الطلب الأول مؤقتًا، وسيكون الإدخال المخزن مؤقتًا (على الأرجح) استجابة بتنسيق gzip. سيقرأ الطلب الثاني القيمة المخزّنة مؤقتًا وقد يعرض بعد ذلك إدخالاً مضغوطًا باستخدام gzip إلى برنامج لا يمكنه قراءة الضغط بتنسيق gzip.

راجع تهيئة مفتاح ذاكرة التخزين المؤقت لمزيد من المعلومات.

<UseAcceptHeader>false</UseAcceptHeader>

الخيار التلقائي:

false

الحضور:

اختياري

النوع:

منطقي

العنصر <UseResponseCacheHeaders>

اضبط القيمة على true لمراعاة عناوين استجابة HTTP عند ضبط مدة البقاء (TTL) للاستجابة في ذاكرة التخزين المؤقت. وعندما يكون ذلك صحيحًا، يراعي Edge قيم عناوين الاستجابة التالية، ويقارن القيم بالقيم التي تم ضبطها في <ExpirySettings> عند تحديد مدة البقاء:

  • Cache-Control s-maxage
  • Cache-Control max-age
  • Expires

راجِع إعداد تاريخ انتهاء صلاحية إدخال ذاكرة التخزين المؤقت للحصول على مزيد من التفاصيل.

<UseResponseCacheHeaders>false</UseResponseCacheHeaders>

الخيار التلقائي:

false

الحضور:

اختياري

النوع:

منطقي

ملاحظات الاستخدام

الحد الأقصى لحجم كل عنصر تم تخزينه مؤقتًا هو 256 كيلوبايت. (للحصول على معلومات تفصيلية حول الطريقة التي يعالج بها متصفّح Edge ذاكرة التخزين المؤقت، يمكنك الاطّلاع على العمليات الداخلية لذاكرة التخزين المؤقت).

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

لمزيد من المعلومات حول كيفية تعامل Edge مع عناوين الاستجابة مع سياسة ResponseCache، يمكنك الاطّلاع على دعم عناوين استجابة HTTP.

إعداد وقت انتهاء صلاحية إدخال ذاكرة التخزين المؤقت

كما هي الحال في سياسة تعبئة ذاكرة التخزين المؤقت، يمكنك ضبط تاريخ انتهاء صلاحية إدخال ذاكرة التخزين المؤقت للاستجابة (وقت نشره) باستخدام العنصر <ExpirySettings>. في سياسة Response Cache (ذاكرة التخزين المؤقت، يمكنك أيضًا الطلب من Edge استخدام عناوين الاستجابة عند توفّرها.)

لاستخدام عناوين الاستجابة، عليك ضبط قيمة العنصر <UseResponseCacheHeaders> على صحيح. يؤدي هذا الإعداد إلى أن يأخذ Edge في الاعتبار عناوين الاستجابة، ويقارنها بالقيمة التي تم ضبطها في <ExpirySettings>، ثم يستخدم أدنى قيمة بين الاثنين. عند التفكير في عناوين الاستجابة، يختار Edge القيمة المتاحة على النحو الموضَّح في ما يلي:

على سبيل المثال، تخيل أن إحدى الردود تم تخزينها مؤقتًا بالقيم التالية:

  • ما مِن قيمة Cache-Control s-maxage.
  • قيمة Cache-Control max-age تبلغ 300
  • تاريخ Expires بعد ثلاثة أيام
  • قيمة <ExpirySettings> TimeoutInSeconds تبلغ 600.

في هذه الحالة، سيتم استخدام القيمة max-age Cache-Control لمدة البقاء لأنّها أقل من قيمة <ExpirySettings> ولأنّ لا تتوفّر قيمة Cache-Control s-maxage (التي تكون لها الأولوية على max-age).

إعداد مفتاح ذاكرة التخزين المؤقت

كما هو الحال مع سياسات ذاكرة التخزين المؤقت للأغراض العامة، مثل سياسة تعبئة ذاكرة التخزين المؤقت، عند استخدام ResponseCache، يمكنك استخدام العنصرَين <CacheKey> و<Scope> لضبط عملية إنشاء مفتاح ذاكرة التخزين المؤقت لإدخالات ذاكرة التخزين المؤقت. وباستخدام ResponseCache، يمكنك أيضًا جعل مفاتيح ذاكرة التخزين المؤقت أكثر وضوحًا من خلال إلحاق عناوين "قبول الاستجابة" بالقيم الرئيسية.

للحصول على معلومات عامة عن ضبط مفاتيح ذاكرة التخزين المؤقت، يمكنك الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت. للحصول على معلومات عن استخدام العناوين "قبول"، يُرجى الاطّلاع على <UseAcceptHeader>.

لمحة عن تشفير ذاكرة التخزين المؤقت

Edge for Public Cloud: يتم تشفير ذاكرة التخزين المؤقت فقط في المؤسسات التي تستخدم PCI وHIPAA. يتم ضبط التشفير لتلك المؤسسات أثناء توفير المتطلبات اللازمة في المؤسسة.

متغيرات التدفق

تتم تعبئة متغيرات التدفق التالية المحدّدة مسبقًا عند تنفيذ سياسة ResponseCache. لمزيد من المعلومات عن متغيّرات التدفق، يُرجى الاطّلاع على مرجع المتغيرات.

المتغيرات النوع الإذن الوصف
responsecache.{policy_name}.cachename سلسلة قراءة فقط لعرض ذاكرة التخزين المؤقت المستخدمة في السياسة
responsecache.{policy_name}.cachekey سلسلة قراءة فقط لعرض المفتاح المستخدَم
responsecache.{policy_name}.cachehit منطقي قراءة فقط صحيح في حال نجاح تنفيذ السياسة
responsecache.{policy_name}.invalidentry منطقي قراءة فقط True إذا كان إدخال ذاكرة التخزين المؤقت غير صالح

رموز الخطأ

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

بادئة رمز الخطأ

لا ينطبق

أخطاء في وقت التشغيل

لا تؤدي هذه السياسة إلى حدوث أي أخطاء في وقت التشغيل.

أخطاء النشر

يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.

اسم الخطأ السبب إصلاح
InvalidTimeout إذا تم ضبط العنصر <CacheLookupTimeoutInSeconds> في سياسة ResponseCache على رقم سالب، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.
InvalidCacheResourceReference يحدث هذا الخطأ إذا تم ضبط العنصر <CacheResource> في سياسة ResponseCache على اسم غير متوفّر في البيئة التي يتم فيها تفعيل الخادم الوكيل لواجهة برمجة التطبيقات.
ResponseCacheStepAttachmentNotAllowedReq يحدث هذا الخطأ إذا كانت سياسة ResponseCache نفسها مرتبطة بمسارات طلبات متعدّدة ضمن أي تدفقات في الخادم الوكيل لواجهة برمجة التطبيقات.
ResponseCacheStepAttachmentNotAllowedResp يحدث هذا الخطأ إذا كانت سياسة ResponseCache مرتبطة بمسارات متعدّدة للاستجابة ضمن أي تدفقات من الخادم الوكيل لواجهة برمجة التطبيقات.
InvalidMessagePatternForErrorCode يحدث هذا الخطأ إذا كان العنصر <SkipCacheLookup> أو العنصر <SkipCachePopulation> في سياسة ResponseCache يحتوي على شرط غير صالح.
CacheNotFound يحدث هذا الخطأ إذا لم يتم إنشاء ذاكرة التخزين المؤقت المحددة المذكورة في رسالة الخطأ على مكون محدد لمعالجة الرسائل.

متغيرات الخطأ

لا ينطبق

مثال على الردّ على الخطأ

لا ينطبق

المخطط

ويتم تحديد كل نوع من أنواع السياسات من خلال مخطّط XML (.xsd). وتتوفّر مخطّطات السياسات كمرجع على GitHub.