CDN که مخفف واژگان Content Delivery Network به معنی «شبکهٔ توزیع محتوا» است، میتواند باعث افزایش سرعت لود تصاویر، فایلهای جاوااسکریپت، سیاساس و دیگر محتواهای استاتیک در وبسایت شود که در این پست قصد داریم تعدادی سرویس شبکهٔ توزیع محتوای رایگان را برای میزبانی پروژههای اپنسورس بررسی نماییم.
شبکهٔ توزیع محتوا (CDN) چیست؟
CDN به طور کلی شبکهای از سرورهای مختلف است که در نقاط مختلف جهان قرار داده شدهاند و وظیفهٔ افزایش سرعت انتقال و نمایش فایلها را برای کاربران در منابع جغرافیایی مختلف بر عهده دارند. به عبارت دیگر، محتوای سایت بر اساس نزدیکترین موقعیت جغرافیایی کاربر برایش بارگذاری خواهد شد و بدین ترتیب دولوپرها میتوانند سرویسهای خود را با سرعت بیشتری در اختیار کاربران قرار دهد (پیش از این در یکی از اپیزودهای رادیو فولاستک با پویا پیرحسینلو: همبنیانگذار و مدیرعامل ابرآروان مصاحبه کردیم که برای آشنایی با سازوکار یک شبکهٔ توزیع محتوا، میتوانید به این پادکست مراجعه نمایید.)
اگر پروژهٔ شما استفاده از یک CDN حرفهای و غیررایگان را از نظر اقتصادی توجیه نمیکند، میتوانید با استفاده از یکسری CDN اپنسورس نیاز خود را مرتفع نمایید. در واقع، این سرویسهای رایگان شما را به مجموعه برنامههای مبتنی بر وب (برای مثال فریمورکها و لایبرریهای زبانهای CSS یا JS) متصل میکنند و بدین ترتیب مجموعهای از برنامههای مختلف به وسیلهٔ سرورهای شبکهٔ توزیع محتوا به صورت رایگان در اختیار کاربران وبسایت شما قرار میگیرند که در ادامه با برخی از معروفترین آنها آشنا خواهید شد.
JsDelivr
JsDelivr یک CDN اپنسورس است که شبکهای از یکسری CDN پرمیوم از جمله KeyCDN ،Stackpath و Cloudflare را شامل میشود. شاخصههای این سرویس عبارتند از:
- دسترسی به بیش از ۲۰۰۰ نرمافزار اپنسورس
- بهرهگیری از بیش از ۱۰۰ پاپسایت در سراسر دنیا
- پشتیبانی از API
- ترافیک نامحدود
- پشتیبانی کامل از پروتکل امن HTTPS
تمامی اِسنیپتها در این سرویس با آدرس https://cdn.jsdelivr.net آغاز شده و نام پروژه و شمارهٔ ورژن در ادامه میآید (البته میتوان JsDelivr را به گونهای کانفیگ کرد که آدرس لایببری مد نظر با تگهای <script></script> بارگزاری گردد.)
Cdnjs
Cdnjs نیز یک CDN اپنسورس است که سرویسهای آن بسیار شبیه به JsDelivr هستند که مجموعه لایبرریها و فریمورکهای محبوب JavaScript و CSS را در اختیار دولوپرها قرار میدهد. سرویس Cdnjs تحت حمایت Cloudflare و KeyCDN فعالیت میکند و برخی از شاخصههای آن عبارتند از:
ـ قابلیت استفاده از بیش از ۳۰۰۰ نرمافزار
- سرویسدهی به بیش از ۱/۰۰۰/۰۰۰ وبسایت
- پشتیبانی از پروتکل HTTP/2
- پشتیبانی از پروتکل امن HTTPS
همانند JsDelivr، در این سرویس نیز میتوان از آدرس هدف به صورت URL یا با استفاده از تگهای <script></script> استفاده نمود.
Google Hosted Libraries
Google Hosted Libraries به شما این امکان را میدهند تا به مجموعه نرمافزارهای جاوااسکریپتی که توسط شبکهٔ اپنسورس قدرتمند گوگل میزبانی میشوند دسترسی پیدا کنید. امکانات ارائه شده در این شبکه به گستردگی JsDelivr و Cdnjs نیست، ولی این شبکه قابلیت اطمینان بیشتری نسبت به دو سرویس قبلی دارد! برخی از شاخصههای این سرویس عبارتند از:
- پشتیبانی از پروتکل امن HTTPS
- در اختیار گذاشتن فایلهای مختلف با هِدِرهای CORS و Timing-Allow
- ارائه آخرین نسخه از تمامی مجموعه برنامهها
تمامی فایلهای Google Hosted Libraries با آدرس https://ajax.googleapis.com شروع میشوند و نام پروژه، شمارهٔ ورژن و نام فایل در ادامهٔ مسیر میآیند.
Microsoft Ajax CDN
Microsoft Ajax CDN مانند سرویس Google Hosted Libraries تنها از مجموعه برنامههای محبوب میزبانی میکند. برخی از شاخصههای این سرویس عبارتند از:
- پشتیبانی از پروتکل امن HTTPS
- در دسترس بودن ورژنهای قدیمیتر بیشتر مجموعه لایبرریها
تمامی فایلهای Microsoft Ajax CDN با آدرس http://ajax.aspnetcdn.com/ajax آغاز شده و در ادامه نام مجموعه برنامه، شمارهٔ ورژن و مابقی اطلاعات در آن لحاظ میشود.
اگر هنوز پروژه یا وبسایت شما به جایی نرسیده که بتوانید از یکسری CDN پرمیوم (پولی) استفاده کنید و با این حال میخواهید بعضی از جنبههای وبسایت خود را بهبود دهید، استفاده از یک CDN اپنسورس بهترین راهحل خواهد بود. این امر باعث افزایش سرعت بارگذاری وبسایت برای کاربرانی که فاصله مکانی زیادی با سرور اصلی وبسایت شما دارند خواهد شد و موجب کاهش بار غیرضروری بر روی سرور اصلی شما میشود.
حال نوبت به نظرات شما میرسد. ترجیح میدهید از کدامیک از سرویسهای CDN فوقالذکر استفاده کنید؟ آیا به غیر از موارد فوق، CDN دیگری میشناسید که سرویسی خوب و در عین حال رایگان در اختیار دولوپرها قرار دهد؟ نظرات، دیدگاهها و تجربیات خود را با دیگر کاربران سکان آکادمی به اشتراک بگذارید.