محتوای آنلاین (فارغ از نوع آن) به دو دسته کلی داینامیک (Dynamic) و استاتیک (Static) تقسیم می‌شود. داینامیک یا استاتیک بودن محتوا، نحوه‌ی ذخیره‌شدن اطلاعات وب‌سایت در سرور و ارایه‌ی آن به مخاطبان را تعیین می‌کند. تفاوت محتوای داینامیک و استاتیک به‌طور قابل توجهی در انتخاب روش کش شدن محتوا تاثیر می‌گذارد. برای آشنایی با عملکرد کش وب سایت و تاثیر نوع محتوا در کشینگ وب‌سایت، با ما همراه شوید.

کش وب‌سایت چیست؟

قبل از هر چیز، بهتر است با کشینگ وب‌سایت (Website Caching) آشنا شویم. کش که در فارسی به آن حافظه‌ی نهان هم می‌گویند، یک حافظه موقت است. زمانی‌که شما از یک وب‌سایت بازدید می‌کنید، داده‌های مربوط به آن وب‌سایت در سیستم شما ذخیره می‌شود.

زمانی که برای بار دوم به همان سایت مراجعه کنید، مرورگر شما این داده‌ها را از حافظه نهان بازیابی می‌کند. در واقع نیازی نیست تا مرورگر، دوباره داده‌ها را از سرور دریافت کند. بنابراین سرعت بارگذاری صفحه، بالاتر می‌رود و تا زمانی که تغییری در سمت سرور سایت ایجاد نشود، نیازی به بارگیری دوباره‌ی داده‌ها وجود ندارد.

به داده‌هایی که در این حافظه نهان ذخیره می‌شود، کش وب سایت می‌گویند. نوع محتوا (یعنی استاتیک یا داینامیک بودن آن) در نحوه‌ی ذخیره شدن کش یا کش شدن محتوا تاثیرگذار است. برای درک تفاوت کش استاتیک و داینامیک، باید با ویژگی‌های هر یک از این محتواها آشنا شویم.

 

محتوای استاتیک چیست؟

منظور از محتوای استاتیک، فایل‌هایی هستند که به‌طور غیرقابل تغییر در سرور ذخیره می‌شوند. این فایل‌ها به همان فرم و شکلی که هستند، برای بازدیدکننده سایت به نمایش درمی‌آیند. محتوای استاتیک را می‌توان ساده‌ترین نوع داده در نظر گرفت؛ هیچ اهمیتی ندارد که کاربر، برای بار اول این محتوا را مشاهده می‌کند یا برای بار صدم؛ چراکه هر بار، محتوای یکسان را مشاهده خواهد کرد.

 

مثال‌هایی از محتوای استاتیک

تصاویر، ویدیوها، فایل‌های متنی و کدهای HTML ساده‌ترین مثال‌های محتوای استاتیک هستند و در سرور سایت بارگذاری می‌شوند. مثال‌های واقعی سایت‌های دارای محتوای استاتیک را ببینید:

  • ویدیوهای موجود در یوتیوب (YouTube)
  •  تصاویر محصولاتی که در فروشگاه‌های آنلاین مشاهده می‌کنید.
  • خبرهای موجود در سایت‌های خبری
  • صفحه‌هایی از وب که خدمات یک سازمان یا شرکت خاص را توضیح می‌دهند.

همین محتوایی که الان در حال خواندن آن هستید هم نوعی از محتوای استاتیک است. اما محتوای استاتیک، چه ویژگی‌هایی دارد؟

 

ویژگی‌های کش استاتیک

در ادامه می‌توانید مسیر درخواست و دریافت محتوای استاتیک از سرور یک وب سایت را مشاهده کنید:

  • هنگام بازدید از یک وب‌سایت، درخواستی از سمت مرورگر به سرور سایت ارسال می‌شود.
  • سرور، فایل‌ها و محتوای درخواستی را استخراج و آن‌ها را برای مرورگر ارسال می‌کند.
  • محتوای درخواستی، بر روی صفحه نمایش کاربر نمایش داده شده و هم‌زمان در حافظه کش هم ذخیره می‌شود.
  • زمانی‌که کاربر برای بار دوم به همان سایت مراجعه کند، دیگر نیازی به ارسال درخواست جدید از مرورگر به سرور وجود ندارد. این بار، محتوا از حافظه کش استاتیک خوانده شده و برای کاربر نمایش داده می‌شود.

 

اما محتوای استاتیک، ویژگی‌های دیگری هم دارد:

  • سادگی در روند خواندن محتوا: استخراج محتوا از روی دیسک و ارسال آن برای کاربر، تمام روند خواندن محتوای استاتیک را در برمی‌گیرد.
  • بارگذاری سریع: ارسال محتوای استاتیک برای کاربر و ذخیره شدن آن در حافظه نهان، به‌سادگی و با سرعت بالا انجام می‌شود. البته نباید از حجم محتوای استاتیک غافل شد؛ چراکه ارسال ویدیوهای سنگین، بیش‌تر از ارسال فایل‌های متنی سبک زمان می‌برد.
  • امکان ایجاد تغییر، فقط به‌طور دستی: اگر صاحب وب‌سایت تصمیم بگیرد محتوای استاتیک را تغییر دهد، باید آن را به‌طور دستی از سرور حذف و سپس فایل‌های جدید را جایگزین کند.

 

در برابر محتوای استاتیک، محتوای داینامیک قرار می‌گیرد. نحوه‌ی ذخیره‌سازی محتوای داینامیک و استاتیک در کش وب‌سایت، با یکدیگر فرق می‌کند.

محتوای داینامیک چیست؟

همان‌طور که از نام آن مشخص است، این نوع از محتوا به طور دایم در حال تغییر است. محتوای داینامیک با توجه به رفتار کاربر تولید می‌شود. در واقع هر کاربر، محتوای شخصی‌سازی‌شده و مطابق با رفتار خود را بر روی صفحه‌نمایش‌اش مشاهده خواهد کرد.

محتوای داینامیک به‌عنوان یک داده حاضر و آماده، بر روی سرور سایت ذخیره نمی‌شود. زمانی که کاربر درخواست خود برای دریافت محتوای داینامیک را ارسال می‌کند؛ محتوا در همان لحظه و بر اساس پارامترهای موجود در درخواست، تولید می‌شود. با هم مثال‌هایی از محتوای داینامیک را مرور می‌کنیم.

 

مثال‌هایی از محتوای داینامیک

صفحات وب ساخته‌شده با پی‌اچ‌پی (PHP)، پایتون (Python) یا جاوا اسکریپت (JavaScript)، مثال‌هایی از محتوای داینامیک هستند. هم‌چنین پیام متنی ارسال‌شده در یک پیام‌رسان هم مثال خوبی از محتوای داینامیک است؛ چراکه کاربر، پیام خود را در لحظه نوشته و آن را برای مخاطبش ارسال می‌کند.

مثال‌های عینی از محتوای داینامیک که شما هم احتمالن آن‌ها را تا‌به‌حال دیده‌اید:

 

  • محتوای منتشرشده در شبکه‌های اجتماعی

بیش‌تر محتوای منتشرشده در شبکه‌های اجتماعی، از نوع داینامیک هستند. مثلن صفحه‌ی فید (Feed) اینستاگرام شما و دوست‌تان می‌تواند فرق بسیار زیادی با یکدیگر داشته باشد؛ چراکه هر یک از شما، هم مخاطبان متفاوتی دارید و هم نحوه‌ی نمایش پست‌ها را به‌طور دل‌خواه تغییر داده‌اید.

 

  • بنرهای تبلیغاتی موجود در وب‌سایت‌های مختلف

در سایت‌ها و شبکه‌های اجتماعی رفتار هر یک از کاربران (شامل تاریخچه جست‌وجو، صفحاتی که بازدید کرده‌اند، آیتم‌هایی که پسندیده‌اند و …)، رصد می‌شود تا تبلیغات مرتبط با علایق هر کاربر به او نمایش داده شود؛ هر یک از بنرهای تبلیغاتی به‌طور داینامیک انتخاب برای کاربران مختلف نمایش داده می‌شوند.

 

  • آیتم‌های پیشنهادی در یک فروشگاه آنلاین

آیتم‌های پیشنهادی موجود در یک فروشگاه آنلاین، بر اساس خریدهای قبلی و کالاهای مورد علاقه شما نشان داده می‌شود. کافیست یک‌بار با حساب خود وارد فروشگاه آنلاین شوید و یک‌بار هم بدون وارد شدن به حساب کاربری از همان فروشگاه بازدید کنید؛ اینجاست که متوجه فرق پیشنهادات نمایش‌داده‌شده از سوی فروشگاه آنلاین خواهید شد.

در یک وب سایت، معمولن هم محتوای داینامیک وجود دارد و هم محتوای استاتیک. مثلن، تصاویر موجود در فروشگاه آنلاین به‌شکل استاتیک هستند ولی پیشنهاداتی که برای خرید ارایه می‌شود، داینامیک است.

 

ویژگی‌های محتوای داینامیک

روند ارسال محتوای داینامیک را در ادامه بررسی می‌کنیم:

  • مرورگر درخواست را برای دریافت محتوای مدنظر کاربر، به سرور ارسال می‌کند.
  • سرور، درخواست را به پایگاه‌های داده، فضاهای ذخیره‌سازی و احتمالن به سرویس‌هایی که شرکت‌های شخص ثالث ارایه می‌دهند، ارسال می‌کند تا محتوای شخصی‌سازی‌شده را برای کاربر تولید کند.
  • محتوای داینامیک، برای کاربر ارسال می‌شود.

 

در این مسیر، متوجه می‌شویم که ذخیره‌سازی محتوای داینامیک در کش وب سایت بسیار مشکل است. البته می‌توان قسمتی از محتوای داینامیک را در حافظه نهان و آن هم برای مدتی کوتاه، ذخیره کرد. اما معمولن هر بار یک درخواست جدید از مرورگر به سرور ارسال می‌شود.

سایر ویژگی‌های محتوای داینامیک عبارت‌اند از:

 

  • قابلیت شخصی‌سازی

هنگام آماده‌سازی محتوای داینامیک برای هر کاربر، عواملی مثل موقعیت مکانی، نوع مرورگر، دستگاه و حتا زمان ارسال درخواست هم در نظر گرفته می‌شود. بنابراین می‌توان محتوای مورد انتظار هر کاربر را تولید و ارسال کرد.

 

  • پیچیده بودن فرآیند ارسال محتوا برای کاربر

برای این‌که بتوان محتوای داینامیک را به‌موقع برای کاربر ارسال کرد، باید هماهنگی مناسبی بین سرور سایت، پایگاه‌های داده و … وجود داشته باشد. این هماهنگی، به دانش، تجربه و تلاش‌های تیم IT نیاز دارد.

 

اما چگونه می‌توان با بهبود فرآیند کشینگ، سرعت بازدید از وب سایت را افزایش داد؟

 

افزایش سرعت وب‌سایت با بهبود فرآیند کشینگ

نحوه‌ی ارسال محتوای داینامیک و استاتیک برای کاربران، نقش موثری در سرعت وب‌سایت دارد. مفهوم کشینگ در سرورها هم وجود دارد که مشابه کش شدن محتوا برای بر روی دستگاه‌های بازدیدکنندگان است. شما می‌توانید از سرویس شبکه توزیع محتوا (Content Distribution Network که به اختصار به آن CDN هم می‌گویند) به عنوان کش وب سایت استفاده کنید.

در این حالت، محتوای سایت بر روی CDN به‌طور موقت ذخیره می‌شود. هر بار که کاربر از سایت شما بازدید کند؛ محتوای سایت به‌جای ارسال شدن از سرور اصلی، از نزدیک‌ترین سرور موجود در شبکه توزیع محتوا ارسال می‌شود. سرورهای CDN، در مناطق مختلف جغرافیایی توزیع می‌شوند. بنابراین کاربران می‌توانند به نزدیک‌ترین سرور موجود در منطقه‌ی خود، متصل شوند.

از CDN می‌توان به‌عنوان کش داینامیک یا کش استاتیک استفاده کرد. ابر آروان به‌عنوان یکی از بهترین ارایه‌دهندگان CDN، امکان ذخیره محتوای استاتیک بر روی شبکه توزیع محتوا را فراهم کرده است. بازیابی محتوای استاتیک از سرورهای شبکه توزیع محتوا، نقش قابل توجهی در افزایش سرعت وب سایت‌ها و ارایه خدمات آنلاین دارد.