محلّل ترويسات التخزين المؤقت

تعمل في المتصفح التحقق

الصق ترويسات الاستجابة لتحصل على حكم بشأن التخزين المؤقت: مدة الحداثة (freshness lifetime)، وسلوك إعادة التحقق، والتخزين المؤقت المشترك مقابل الخاص، والترويسات الخاصة بشبكات CDN، والتعارضات.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

كيفية استخدام محلّل ترويسات التخزين المؤقت

  1. الصق ترويسات الاستجابة (استجابة خام أو مخرجات curl -I أو أسطر بصيغة «Name: value»).
  2. اختر طريقة الطلب، ورمز الحالة إذا كان النص الملصق لا يحتوي على سطر حالة.
  3. اقرأ الحكم: هل تُخزَّن الاستجابة، ولكم من الوقت، وكيف يُعاد التحقق منها.
  4. تحقق من النتائج بحثاً عن التسريبات (بيانات شخصية في ذاكرات التخزين المؤقت المشتركة) والتناقضات.
  5. انسخ السياسة المقترحة بوصفها نقطة انطلاق وعدّل المدد بما يناسبك.

مزايا محلّل ترويسات التخزين المؤقت

  • يشرح كل توجيه في Cache-Control ويحسب مدة الحداثة من max-age أو s-maxage أو الفرق Expires − Date
  • أحكام منفصلة لذاكرات التخزين المؤقت في المتصفحات وذاكرات التخزين المؤقت المشتركة (شبكات CDN والوكلاء)
  • سلوك إعادة التحقق استناداً إلى ETag / Last-Modified وstale-while-revalidate وstale-if-error
  • تحليل Vary: توقّع Accept-Encoding، وتجزئة الذاكرة بسبب Cookie/User-Agent، وتحذيرات Vary: *
  • تفسير ترويسات CDN: cf-cache-status وx-cache وx-vercel-cache وCDN-Cache-Control وSurrogate-Control وAge
  • اكتشاف التعارضات (no-store مع max-age، وpublic مع private، والاستجابات المصادَق عليها القابلة للتخزين المؤقت) واقتراح سياسة مناسبة

مثال على محلّل ترويسات التخزين المؤقت

استجابة عامة تضبط ملف تعريف ارتباط

الإدخال:

Cache-Control: public, max-age=600, s-maxage=3600
ETag: W/"5f8d-1a2b3c"
Vary: Accept-Encoding, Cookie
Age: 240
cf-cache-status: HIT
Set-Cookie: session=abc123; Path=/; HttpOnly

النتيجة:

Verdict: Cacheable: fresh for 10 min in browsers and 1 h in shared caches.
Age: 4 min — 56 min of freshness remaining
High — Cache-Control: The response sets a cookie but is cacheable by shared caches — personal data may be served to other users.
Medium — Vary: Vary on Cookie fragments the cache into thousands of variants.
cf-cache-status HIT: Cloudflare served the response from its edge cache.

الأسئلة الشائعة حول محلّل ترويسات التخزين المؤقت

ما الذي يحدّد مدة الحداثة؟

Cache-Control: s-maxage (لذاكرات التخزين المؤقت المشتركة) ثم max-age، ثم Expires مطروحاً منه Date. وبعد انقضاء تلك المدة تصبح النسخة قديمة (stale) ويجب إعادة التحقق منها أو إعادة جلبها.

ما الفرق بين no-cache وno-store؟

يعني no-store عدم تخزين الاستجابة في أي مكان على الإطلاق؛ أما no-cache فيعني جواز تخزينها لكن مع وجوب إعادة التحقق منها لدى الخادم الأصلي قبل كل إعادة استخدام.

لماذا تُعدّ Vary مهمة؟

تحتفظ ذاكرات التخزين المؤقت بنسخة واحدة لكل تركيبة مختلفة من ترويسات الطلب المدرجة. Vary: Accept-Encoding أمر متوقَّع؛ أما Vary: Cookie أو User-Agent فيجزّئ الذاكرة ويقضي على نسب الإصابة (hit ratio).

ما ترويسات CDN التي تُشرح؟

cf-cache-status وx-cache وx-cache-hits وx-served-by وx-vercel-cache وCDN-Cache-Control وCloudflare-CDN-Cache-Control وSurrogate-Control وAge وعدة ترويسات أخرى.

هل يرصد تسريبات البيانات الشخصية؟

نعم — يُبلَّغ عن أي استجابة تضبط ملفات تعريف ارتباط أو تكون مصادَقاً عليها لكنها قابلة للتخزين المؤقت في الذاكرات المشتركة بوصفها نتيجة عالية الخطورة.

ملاحظات تقنية

تتبع الحداثة ترتيب الأولوية في RFC 9111: ينطبق s-maxage على الذاكرات المشتركة فقط ويتقدّم فيها على max-age؛ ويتقدّم max-age على Expires؛ ويعني تاريخ Expires غير الصالح أن النسخة «قديمة أصلاً». وتُطرح قيمة Age لإظهار المدة المتبقية للنسخة التي استلمتها.

يُبلَّغ عن التخزين المؤقت الاستدلالي (heuristic) عندما تصل حالة قابلة للتخزين المؤقت افتراضياً (200 و203 و204 و206 و300 و301 و308 و404 و405 و410 و414 و501) دون معلومات صريحة عن الحداثة — فقد تفترض الذاكرات عندئذٍ مدة من تلقاء نفسها، تساوي عادةً 10% من عمر Last-Modified.