ما هي شبكة توصيل المحتوى (CDN)؟ شرح مبسّط
شبكة CDN (شبكة توصيل المحتوى) هي شبكة من الخوادم موزعة على مدن كثيرة، تحتفظ بنسخ من ملفات موقعك، مثل الصور والسكربتات وملفات التنسيق، وأحياناً الصفحات كاملة. عندما يزور شخص موقعك، يُخدَم من موقع قريب منه بدلاً من خادم بعيد واحد. وهذا يجعل الصفحات تُحمَّل أسرع، ويخفف الحمل عن خادمك، ويساعد الموقع على تحمّل ارتفاعات الزيارات المفاجئة.
لماذا تهم شبكات CDN عند البناء بالذكاء الاصطناعي
قد لا تُعدّ شبكة CDN بنفسك أبداً، فكثير من منصات الاستضافة تضع واحدة أمام موقعك تلقائياً. لكنك ستلاحظ أثرها:
- السرعة. الصفحات السريعة التحميل تُبقي الزوار لفترة أطول، وهي من الأمور التي تأخذها محركات البحث في الاعتبار. انظر كيف تجعل موقعك أسرع.
- "لماذا لا يظهر التغيير الذي أجريته؟" بعد نشر تحديث، قد تبقى نسخة مخزنة من النسخة القديمة لفترة قصيرة. ومعرفة السبب توفّر عليك كثيراً من الارتباك.
- الخصوصية والصحة. إذا خزّنت شبكة CDN شيئاً خطأً، مثل صفحة تحتوي على تفاصيل مستخدم، فقد يراها الزائر التالي. ومعرفة ما يجب تخزينه وما لا يجب يساعدك على طرح الأسئلة الصحيحة.
تشبيه من الحياة اليومية
تخيّل مخبز يبيع خبزه في أنحاء البلاد من متجر واحد. كل زبون، مهما كان بعيداً، عليه أن ينتظر التوصيل من ذلك المتجر الواحد، وفي يوم مزدحم تكون الطوابير ضخمة.
شبكة CDN تشبه توفير الخبز نفسه في دكاكين الحي المنتشرة في البلاد. يشتري الزبائن من أقرب دكان بسرعة، ويحتاج المخبز الرئيسي إلى تزويد الدكاكين من حين لآخر فقط. لكن هناك مشكلة: إذا غيّر المخبز وصفته، تستمر الدكاكين في بيع الأرغفة القديمة حتى تُبلَّغ باستبدالها، أو حتى تنتهي صلاحية المخزون القديم.
كيف تعمل شبكة CDN
- مصدرك (Origin). يعيش موقعك على خادمك الرئيسي أو منصة الاستضافة، وهذا ما يُسمى المصدر.
- نقاط الحافة (Edge). تشغّل شبكة CDN خوادم في أماكن كثيرة، تُسمّى نقاط الحافة أو نقاط الحضور (PoP).
- التوجيه. عندما يطلب زائر موقعك، يرسله DNS أو توجيه الشبكة إلى أقرب نقطة حافة. انظر كيف تعمل النطاقات وDNS.
- إصابة في التخزين المؤقت (Cache hit). إذا كانت نقطة الحافة تحتفظ بنسخة حديثة من الملف، فإنها ترسله فوراً.
- إخفاق في التخزين المؤقت (Cache miss). إذا لم تكن النسخة موجودة، تجلبها نقطة الحافة من مصدرك، وترسلها للزائر، وتحتفظ بنسخة لمن يأتي بعده.
- انتهاء الصلاحية. تُحفظ كل نسخة لمدة محددة، تتحكم فيها ترويسات التخزين المؤقت التي يرسلها خادمك، أو حتى تُمسح يدوياً.
مثال عملي: موقع معرض صور لمصوّر
لمعرض صور مصوّر صفحة رئيسية، ومعرض يضم 60 صورة كبيرة، ونموذج للتواصل. المصدر موجود في أوروبا. زائرة في سنغافورة تفتح المعرض.
- بدون شبكة CDN: تنتقل كل صورة من أوروبا. كل طلب يقطع المسافة ذهاباً وإياباً عبر العالم، فيمتلئ المعرض ببطء.
- مع شبكة CDN: أول زائر قريب من سنغافورة يجعل نقطة الحافة هناك تجلب الصور وتخزّنها. وكل زائر لاحق في المنطقة يحصل عليها من قرب، وبسرعة أكبر بكثير.
الآن يستبدل المصوّر الصورة الرئيسية في الصفحة الأولى وينشر من جديد. ما الذي يحدد هل سيرى الزوار التغيير؟
/index.html → مدة تخزين قصيرة، يُتحقق منها كثيراً
/assets/index-3f9a2c.js → مخزّنة لمدة طويلة
/assets/hero-8b41d0.jpg → مخزّنة لمدة طويلة
أدوات البناء الحديثة، بما فيها Vite، تمنح الملفات أسماء مُجزّأة (hashed) مثل hero-8b41d0.jpg. وعندما يتغير الملف، يتغير اسمه، فتطلب الصفحة ملفاً جديداً لم تره أي ذاكرة تخزين من قبل. أما صفحة HTML نفسها فتُخزَّن لمدة قصيرة فقط، فتوجّه الزوار سريعاً إلى الملفات الجديدة. وهذه الطريقة المعتادة للجمع بين التخزين الطويل والتحديث الفوري.
أما نموذج التواصل فمختلف. إرسالاته تذهب إلى الخادم في كل مرة، ولا ينبغي تخزينها أبداً.
ما الذي يُخزَّن ومالا يُخزَّن
| يُخزَّن عادةً لمدة طويلة | يُخزَّن عادةً لمدة قصيرة | لا يُخزَّن في شبكة CDN مشتركة |
|---|---|---|
| الصور والخطوط والفيديوهات | صفحات HTML لموقع عام | الصفحات التي تتطلب تسجيل الدخول، ولوحات التحكم |
| ملفات JavaScript وCSS ذات الأسماء المُجزّأة | بيانات API عامة تتغير أحياناً | أي شيء يحتوي بيانات شخصية |
| الملفات القابلة للتنزيل التي تتغير نادراً | نماذج الإرسال، والمدفوعات، وأي طلب من نوع POST |
مصطلحات أساسية
| المصطلح | المعنى |
|---|---|
| Origin (المصدر) | خادمك الرئيسي أو مضيفك، حيث توجد الملفات الأصلية. |
| Edge / PoP | موقع في شبكة CDN يخدم الزوار القريبين منه. |
| Cache hit / miss | وجود الملف في نقطة الحافة / اضطرارها إلى جلبه من المصدر. |
| TTL | مدة البقاء (Time to live)، أي المدة التي تُحفظ فيها نسخة مخزنة. |
| ترويسة Cache-Control | التعليمات التي يرسلها خادمك تحدد هل يجوز تخزين شيء ما، ولمدة كم. |
| Purge / invalidate | إخبار شبكة CDN بحذف النسخ المخزنة الآن. |
| Cache busting | تغيير اسم الملف أو عنوانه عند تغييره، حتى تجلب الذاكرة المخزنة النسخة الجديدة. |
| Latency | التأخير الناتج عن المسافة وعدد نقاط العبور في الشبكة. |
أما التخزين المؤقت بشكل عام، في المتصفحات والخوادم وقواعد البيانات، فانظر ما هو التخزين المؤقت (Caching).
تصورات خاطئة شائعة
- "شبكة CDN تجعل كل شيء أسرع." إنها تسرّع تسليم الملفات فقط. استعلام بطيء في قاعدة البيانات، أو استدعاء بطيء لنموذج ذكاء اصطناعي على خادمك، يبقى بطيئاً.
- "شبكة CDN تحل محل الاستضافة." إنها تقع أمام الاستضافة، وأنت ما زلت بحاجة إلى مصدر.
- "إذا حدّثت الموقع يراه الجميع فوراً." النسخ القديمة قد تبقى لفترة قصيرة في شبكة CDN وفي المتصفحات. تحقق بالتحديث القسري، واستخدم أسماء ملفات مُجزّأة.
- "التخزين المؤقت آمن دائماً." تخزين صفحة مخصصة لشخص بعينه في ذاكرة مشتركة خطر حقيقي على الخصوصية. يجب تعليم الاستجابات الخاصة بأنها غير قابلة للتخزين.
- "شبكات CDN للشركات الكبيرة فقط." كثير من المضيفين يتضمنون واحدة للمواقع الصغيرة دون جهد إضافي منك.
ماذا تسأل أداة البناء بالذكاء الاصطناعي
- «هل توجد شبكة CDN أمام هذا الموقع؟ ما الملفات التي تخزنها، ولمدة كم؟»
- «تأكد من أن ملفات JavaScript وCSS والصور المبنية لها أسماء مُجزّأة ومدة تخزين طويلة، وأن HTML له مدة قصيرة.»
- «لا تخزّن صفحات تسجيل الدخول أو استجابات API التي تحتوي بيانات شخصية في ذاكرة مشتركة أبداً.»
- «اضغط الصور وغيّر حجمها حتى يُحمَّل المعرض بسرعة.»
- «نشرت تحديثاً لكنني ما زلت أرى النسخة القديمة. هل السبب ذاكرة المتصفح أم شبكة CDN؟»
شبكات CDN وMythex
عندما تنشر على Mythex، تُنشر الواجهات الأمامية الثابتة كمواقع ثابتة، وتشير الوثائق إلى أن ذاكرات CDN قد تتأخر قليلاً بعد التحديث: إذا رأيت نسخة قديمة بعد إعادة النشر، فقم بالتحديث القسري للرابط العام. لا يوجد شيء تحتاج إلى ضبطه لذلك. وإذا ربطت نطاقاً مخصصاً يكون DNS الخاص به على Cloudflare، فالوثائق تطلب ضبط السجل على «DNS only» بدلاً من «proxied»، حتى تتمكن Mythex من إصدار HTTPS بشكل صحيح. انظر كيف تنشر والنطاقات المخصصة في الوثائق، ودليلنا عن استضافة المواقع.
الأسئلة
ما هي شبكة CDN ببساطة؟
شبكة CDN (شبكة توصيل المحتوى) هي شبكة من الخوادم في مواقع كثيرة تحتفظ بنسخ من ملفات موقعك. يُخدَم الزوار من موقع قريب منهم بدلاً من خادمك الرئيسي، فتُحمَّل الصفحات أسرع ويقل العمل الواقع على خادمك.
لماذا أرى النسخة القديمة من موقعي بعد تحديثه؟
عادةً لأن نسخة من الملف القديم مخزنة مؤقتاً، في شبكة CDN أو في المتصفح أو فيهما معاً. التحديث القسري (Hard refresh) يحل المشكلة من جهة المتصفح، أما نسخ CDN فتنتهي صلاحيتها تلقائياً أو يمكن مسحها. وأدوات البناء تتجنب معظم هذه المشكلة بإعطاء الملفات المتغيرة أسماء جديدة.
هل أحتاج إلى شبكة CDN لموقع صغير؟
غالباً ما تكون لديك شبكة CDN دون أن تختارها، لأن كثيراً من منصات الاستضافة تضع شبكة CDN أمام المواقع تلقائياً. وإذا لم يكن الأمر كذلك، وكان زوارك موزعين على دول عدة، فإضافتها تستحق عادةً.
هل تستطيع شبكة CDN تخزين بيانات تطبيقي والصفحات التي تتطلب تسجيل الدخول؟
تستطيع تخزين أي شيء يُسمح لها بتخزينه، ولهذا يجب إعدادها بعناية. الملفات العامة مثل الصور والسكربتات وملفات التنسيق مثالية للتخزين. أما المحتوى الشخصي أو الذي يتطلب تسجيل الدخول فلا ينبغي عادةً تخزينه في شبكة CDN مشتركة، وإلا فقد يرى مستخدم بيانات مستخدم آخر.