متوفر أيضًا بلغات أخرى: English · Español · Português · Français
ترويسة Cache-Control: كل التوجيهات وما تراه شبكة التوصيل
اختر التوجيهات لتحصل على ترويسة، أو الصق ترويسة لتعرف ماذا تقول فعلًا للمتصفح وللذاكرة المشتركة.
ما ترويسة Cache-Control؟
Cache-Control هي الطريقة التي يخبر بها الخادم الذواكرَ بما يجوز لها أن تفعله بالاستجابة، والتي يخبرها بها العميل بما سيقبله. ويعرّف RFC 9111 سبعة عشر توجيهًا لها: سبعة تُرسَل في الطلب وعشرة تُرسَل في الاستجابة. وأربعة أسماء ترد في الجهتين — max-age وno-cache وno-store وno-transform — وتعني أشياء مختلفة بحسب اتجاه سير الرسالة.
والتمييز الأهم ليس في قائمة التوجيهات أصلًا. فـRFC 9111 يفصل الذاكرة المشتركة، أي شبكة توصيل محتوى أو وسيطًا عكسيًّا أو أي شيء يخدم أكثر من شخص، عن الذاكرة الخاصة وهي ذاكرة المتصفح. وسبعة من السبعة عشر تذكر الذاكرة المشتركة في تعريفها، واثنان فقط يذكران النوعين. وتحتفظ IANA بسجلّ لهذه التوجيهات لا يحفظ من ذلك شيئًا: أسماء ومراجع ولا شيء عن السلوك، ولهذا تقرأ هذه الصفحة نصّ المواصفة.
ولذلك قد تبدو الترويسة محكمة وهي لا تقول لشبكة توصيلك شيئًا. فـmax-age يخاطب أي ذاكرة، أما s-maxage وpublic وprivate وproxy-revalidate فهي التي تقصد المشتركة صراحةً.
طريقة الاستخدام
- اختر الجهة. الاستجابة هي الحالة المعتادة، أي ما يرسله خادمك. والطلب ما يرسله المتصفح أو العميل، وله مجموعة أخرى من سبعة توجيهات.
- اضغط التوجيهات أو اكتب الترويسة مباشرةً. الأزرار وحقل النص شيء واحد: فتبديل توجيه يعيد كتابة الحقل، وتحرير الحقل يحدّث الأزرار.
- اقرأ الحكم لا السلسلة وحدها. يُقال لك هل يصل شيء منها إلى ذاكرة مشتركة، وما الذي يُمنَع فعلًا، وأي التوجيهات فيه مشكلة، مع نصّ المواصفة نفسه أسفل ذلك.
no-cache لا تعني «لا تخزّن»
هذا أثقل سوء فهم في الترويسة كلها عاقبةً، وRFC 9111 يحسمه بلا لفّ. فصورة الاستجابة من no-cache تعني أن الاستجابة «يجب ألّا تُستعمل لتلبية أي طلب آخر دون تمريرها للتحقق». فالاستجابة تُخزَّن فعلًا، غير أنها لا تُسلَّم من جديد دون مراجعة خادمك أولًا، وهو في العادة عين ما يريده الناس، ولا شيء مما يظنون أنهم يطلبونه.
أما التوجيه الذي يمنع التخزين فهو no-store: إذ «يجب ألّا تخزّن» الذاكرةُ «أي جزء» من الطلب أو الاستجابة. فإن كان عندك بيانات حساسة ولجأت إلى no-cache فقد لجأت إلى الخطأ منهما. وهذه الصفحة تذكر الاثنين نتيجتين منفصلتين بدل خلطهما، وتنبّه في حينه متى حملت الترويسة no-cache دون no-store.
وثمة دقيقة متصلة تستحق المعرفة: فـno-cache قد يأخذ اسم ترويسة قيمةً له، والصورتان مختلفتان. فبلا قيمة يسري على الاستجابة كلها، ومع اسم ترويسة يقيّد تلك وحدها ويبقى سائر الاستجابة قابلًا لإعادة الاستعمال. وسبعة توجيهات تأخذ قيمة، وأربعة منها فقط تشترطها: فـno-cache وprivate وmax-stale لكل منها صورة صحيحة تمامًا بلا شيء بعدها.
ما لن تخبرك به هذه الصفحة
لن تخبرك بما تفعله شبكة توصيلك أنت بعينها. فالتوجيهات هي ما تقول المواصفة إن على الذاكرة الموافِقة أن تفعله وما يجوز لها؛ وكل شبكة توصيل تجارية تضيف فوق ذلك إعداداتها وتوجيهاتها الخاصة وقيمها الافتراضية، وبعضها يحترم امتدادات غير قياسية لا تعرفها هذه الصفحة. فوسم التوجيه بأنه يصل إلى ذاكرة مشتركة يعني أن المعيار يخاطبها، لا أن مزوّدك ينفّذه كما تتوقّع.
وهي تغطي Cache-Control وحدها. فالطزاجة تقرّرها ترويسات أخرى كذلك — إذ يشارك فيها Expires وAge وETag وLast-Modified جميعًا — والاستجابة الخالية من Cache-Control أصلًا قد تُخزَّن بالاستدلال. ففحص ترويسة واحدة خطوة لازمة لا تدقيق كامل.
وهي تعرض ألفاظ المواصفة لا نصائح. فليس هنا ترويسة موصى بها، لأن الصحيح يتوقّف على كون المورد مخصَّصًا لشخص، وعلى كون عنوانه مرقَّم الإصدار، وعلى سرعة وصول التغيير إلى الناس. وأقصى ما تفعله الصفحة أن تتأكد أن الترويسة التي اخترتها تعني ما تظنه.
لماذا هي مجانية؟
جدول التوجيهات بضعة كيلوبايتات تسافر مع الصفحة، والتحليل يجري في متصفحك أنت. فلا يُرفع شيء مما تكتبه، ولا يُسجَّل شيء، ولا حساب عليك إنشاؤه.
بلا تسجيل، وبلا حدود، وبلا علامة مائية على أي شيء تنسخه.