کشینگ فرآیند ذخیره سازی نسخه های کپی از فایل ها درون یک کش (فضای ذخیره سازی موقت) است که دسترسی آسان تر و سریعتر به آنها را مهیا می کند. اصولاً، یک کش به فضایی موقت برای ذخیره سازی داده ها و فایل ها اطلاق می شود که این اصطلاح اغلب در تکنولوژی های مرتبط با اینترنت مورد استفاده قرار می گیرد. مرورگرهای وب فایل های HTML, JavaScript و تصاویر را برای بارگذاری سریعتر صفحات کش می کنند؛ از طرفی، سرورهای DNS نیز رکوردهای DNS را برای پیدا کردن اطلاعات یا Lookup های سریعتر و سرورهای CDN محتوا را برای کاهش تأخیر کش می کنند.
یکی از موثرترین مواردی که صاحبین وب سایت ها از آن برای بهبود سرعت بارگذاری صفحات استفاده می کنند، کشینگ است. به طور خاص، کشینگ یعنی محتوا در جایی نگهداری شود تا دسترسی به آن سریعتر شود و کار مرورگر را ساده تر کند، به طوری که مجبور نباشد هر بار برای دریافت اطلاعات و داده های یک صفحه به سرور اصلی مراجعه کند.
برای درک بهتر نحوه عملکرد سیستم کشینگ، کش ها را مثل غذا و مواد اولیه دیگر تصور کنید؛ زمانی که فردی به نام Roald Amundsen از سفر قطب جنوب در سال 1912 باز می گشت، او و همراهانش با غذاهایی زنده ماندند که از قبل در مسیر پنهان کرده بودند؛ این روش بسیار موثرتر از زمانی بود که آنها می بایست برای تحویل غذا از کمپ اولیه صبر می کردند.
کش ها در اینترنت نیز دقیقاً همین کار را انجام می دهند. آنها به طور موقت محتوا را در خود ذخیره کرده و به کاربرانی که در سفر اینترنتی خود هستند، تحویل یا نمایش می دهند.
کش مرورگر چگونه عمل می کند؟
هر بار که کاربری صفحه ای وب را لود می کند، مرورگر می بایست برای نمایش آن صفحه، داده های زیادی را دانلود کند؛ به منظور کاهش زمان بارگذاری، مرورگرها بخش گسترده ای از محتوای صفحه را در خود کش می کنند؛ که در اصل نسخه کپی محتوای صفحه را در هارد درایو دستگاه ذخیره می کند.
به این ترتیب، بار دومی که کاربر صفحه را لود می کند، بخش زیادی از صفحه از قبل در دستگاه موجود بوده و صفحه با سرعت بسیار بالاتری بارگذاری خواهد شد؛ چراکه نیازی به دانلود مجدد فایل ها نخواهد بود.
مرورگرها این فایل ها را تا زمان انقضای TTL یا Time to live شان و یا تا زمان پر شدن حافظه کش دستگاه نگه می دارند؛ TTL اصطلاحی است که به معنای مدت زمانی است که محتوا می بایست کش شود, پس یعنی پس از اتمام آن مرورگر باید نسخه جدیدی از محتوای صفحه را دانلود کند.
کاربران نیز می توانند هر زمان که خواستند کش مرورگر خود را پاک کنند.
پاک کردن کش مرورگر چه نتیجه ای دارد؟
زمانی که کش یک مرورگر پاک می شود، هر صفحه ای که باز می شود، مروگر دقیقاً همانند سری اول عمل کرده و می بایست محتوا را تماماً دانلود کند. اگر چیزی به شکل ناصحیح لود و کش شود، پاک کردن کش می تواند به لود شدن صحیح آن کمک کند. اما، پاک کردن کش مرورگر می تواند سرعت بارگذاری صفحه را کُند کند.
این مورد زمانی کاربرد دارد که صاحبین وب سایت ها عمداً می خواهند کش صفحه ی خاصی از مرورگر کاربران پاک شده و صفحه مجدداً نسخه جدید را به آنها نمایش دهد. در این خصوص در ادامه مطلب بیشتر توضیح خواهیم داد.
در رابطه با پاک کردن کش، اکثر وب سایت های وردپرسی با افزونه هایی مثل Wp-rocket آشنا هستند. این افزونه دقیقا محتوای کش شده سایت ها را مدیریت کرده و به بهبود سرعت صفحات کمک می کند.
اما چرا باید کش کردن اینقدر اهمیت داشته باشد؟
از زمانی که گوگل در سالیان اخیر بر سرعت سایت ها تاکید بسیار کرده و از آن به عنوان معیاری برای رتبه دهی به صفحات استفاده می کند، هزاران افزونه وردپرسی، ویجت و سرویس هایی تولید شدند که همگی در تلاش برای افزایش سرعت سایت ها هستند.
چیزی که اکثر صاحبین این وبسایت ها متوجه آن نمی شوند این است که خود این افزونه های کشینگ نتیجه ای برعکس بر سایت می گذارند و صفحات را با مشکلات بیشتری رو به رو می کنند. اما دانستن این موضوع و داشتن دانشی در زمینه CDN ها می تواند شما را به یک حرفه ای تبدیل کرده و هم از نظر تجربه کاربری و هم از نظر سئو شما را نسبت به رقبا برتر کند.
کش CDN چیست؟
یک CDN یا شبکه توزیع محتوا، محتوای صفحات (مثل تصاویر، ویدیوها، متون و غیره) را در سرورهای پروکسی که نسبت به سرور مبدا یا اصلی، به کاربر نهایی نزدیک تر هستند، کش می کند. یک سرور پروکسی، سروری است که درخواست ها یا ریکوئست های کاربران را دریافت کرده و آنها را به سرورهای دیگر می فرستد.
از آنجا که این سرورها به کاربری که درخواستی را ارسال کرده، نزدیک تر هستند، CDN می تواند محتوا را با سرعت بسیار بالاتری به وی نمایش دهد.
CDN را شبیه به یک فروشگاه خوار و بار زنجیره ای تصور کنید؛ بجای اینکه هر بار برای دریافت مواد غذایی به مزارع مراجعه شود (که ممکن است کیلومترها فاصله داشته باشند)، خریداران می توانند به این فروشگاه ها مراجعه کرده و مواد مورد نظر را با وجود طی کردن فاصله ای اندک، تهیه کنند.
از آنجا که فروشگاه ها مواد غذایی را در خود ذخیره می کنند، خرید این مواد بجای چندین روز، چند دقیقه زمان خواهد برد.
دقیقاً همانند این مثال، کش های CDN محتوا را انبار کرده و به لود شدن سریعتر صفحات وب کمک می کنند.
زمانی که کاربری درخواستی را برای مشاهده صفجه ای که به CDN متصل است ارسال می کند، CDN آن محتوا را از سرور اصلی یا Origin دریافت کرده و نسخه ای کپی از آن را برای دفعات بعدی ذخیره می کند. محتوای کش شده تا زمانی که کاربران به ارسال درخواست ادامه دهند، در کش CDN باقی خواهد ماند.
البته صاحب سایت می تواند محتوای کش شده در CDN را هر زمان که اراده کند، به کلی پاک کند، تا نسخه های جدیدتر مجدداً از سرور اصلی دریافت شوند.
منظور از Cache hit در CDN چیست؟
Cache hit زمانی است که دستگاه کاربر برای دریافت محتوا از کش درخواستی ارسال می کند، و کش آن محتوا را در خود ذخیره دارد.
از طرفی cache miss نیز به این معناست که با توجه اینکه CDN محتوا را سریعتر به کاربر نهایی تحویل می دهد، آن محتوا سریعتر لود خواهد شد. در رابطه با کش میس، یک سرور CDN درخواست را به سمت سرور اصلی هدایت کرده و پس از دریافت پاسخ از سرور، نسخه ای محتوا را در خود کش می کند؛
به این ترتیب درخواست های آتی منجر به یک cache hit خواهند شد.
سرورهای کش CDN کجا قرار دارند؟
سرورهای کش CDN در دیتاسنترهای سراسر جهان واقع شده اند. برای مثال سرورهای CDN میزبان کلود در بیش از 25 موقعیت مختلف استراتژیک و مهم واقع شده تا به کاربران نهایی که به دنبال محتوا هستند، از لحاظ جغرافیایی نزدیک تر باشند. به موقعیتی که سرورهای CDN در آن حضور دارند پاپ سایت نیز می گویند.
اما داده های کش شده تا چه زمانی در سرورهای CDN باقی می مانند؟
زمانی که وب سایت ها به سرورهای CDN در خصوص محتوای درخواستی پاسخ می دهند، TTL محتوا را نیز به آنها ضمیمه می کنند؛ که به سرورها اطلاع می دهند تا چه زمانی محتوا را در خود نگه دارد. این TTL در قسمتی از پاسخ به نام HTTP هدر، ذخیره شده و مشخص می کند که محتوا چند ثانیه یا دقیقه یا حتی چند ساعت کش شود.
زمانی که TTL منقضی می شود، کش محتوای ذخیره شده را پاک می کند؛ علاوه بر این برخی از CDN ها در صورتی که یک محتوا برای مدتی مشخص توسط هیچ کاربری درخواست نشود، آن را از کش خود Purge می کنند.
یکی از موارد دیگر زمانی است که صاحب وب سایت که قابلیت CDN را برای سایت خود فراهم کرده، به صورت دستی از CDN می خواهد تا صفحه ای مشخص یا تمام صفحات سایت را Purge کند.
این مورد زمانی کاربرد دارد که اطلاعات یا قسمت هایی از صفحات لندینگ پیچ های سایت شما متغبر بوده و در هر ساعت یا برای مثال هر سه ساعت با محتوایی دیگر جا به جا می شوند؛ فرض کنید برای یک کمپین فروش صفحه فرودی طراحی کرده و به طور منظم هر 6 ساعت یک بار محصولات فروشگاه اینترنتی خود را در صفحه به فروش ویژه می رسانید؛
در چنین شرایطی، در صورتی که محتوای صفحه هر 6 ساعت یک بار از کش پاک نشود، ممکن است برای کاربری که قبلاً صفحه را مشاهده کرده بود، تغییری نکرده و همان محصولات 6 ساعت قبل نمایش داده شوند.
اینجاست که می بایست به صورت دستی وارد قسمت تنظیمات CDN خود شده و آدرس لندینگ خود را وارد و ان را Purge کنید. سپس محتوای جدید و بروزشده، برای کاربر بارگذاری می شود.
کاربردهای دیگر کشینگ
یکی از کاربردهای این سیستم استفاده از آن در DNS است. DNS کشینگ در سرورهای DNS رخ می دهد؛ به صورتی که سرورها lookup های قبلی را در کش خود ذخیره کرده تا هر بار مجبور به ارسال query برای دریافت نیم سرورها نباشند.
به این ترتیب آنها قادر خواهند بود تا با سرعت بسیار بالاتری IP address یک دامنه را به مرورگر اعلام کنند.
موتورهای جستجو نیز ممکن است صفحات وبی که مرتباً در نتایج ظاهر می شوند، کش کنند؛ به این صورت آنها نیز می توانند با سرعت بالاتری به کاربران جستجوگر پاسخ دهند، حتی زمانی که یک سایت به طور موقت در دسترس نباشد.
چه چیزهایی می توانند کش شوند؟
CDN ها برای مدیریت کش منابع کم حجم و استاتیک مناسب هستند؛ منابعی مثل تصاویر ثابت، فایل های CSS، جاوااسکریپت و حتی گیف ها. علاوه بر این می توان از CDN برای کش فایل های بزرگ تر مثل ویدیوها و فایل های صوتی نیز استفاده کرد.
البته برخی از اجزای موجود در کش برای همیشه در آنجا ذخیره نمی شوند؛ همانطور که گفته شد، آنها باید پس از مدتی منقضی شوند تا نسخه های جدیدتر و تغییر یافته جایگزین آنها شوند. این موضوع به نوع وب سایت و محتوای درون آن بستگی دارد.
برای مثال ممکن است یک سایت خبری که دائماً در حال ویرایش صفحات است، هر چند ثانیه کش خود را پاک کند، که برای اینکار TTL کمتری را تعیین می کند. در طرف مقابل، ممکن است یک سایت شرکتی، اطلاعات صفحاتی مثل تماس با ما یا درباره ما را ماه ها تغییر ندهد؛ پس زمان انقضای کش را طولانی تر تنظیم می کند.
راهکار میزبان کلود
یکی از بهترین ارائه دهندگان سرویس CDN در ایران و جهان، میزبان کلود است که به شما این امکان را می دهد تا وب اپلیکیشن های خود را به سادگی در پنل کاربر پسند خود اضافه کرده و از خرید CDN و قابلیت های آن استفاده کنید. به کمک CDN میزبان کلود می توانید در چند ثانیه و تنها با یک کلیک کش محتوای صفحه مورد نظر خود را پاک کرده و برای آنها TTL مورد نظر را وارد نمایید.
پیشنهاد می کنیم حتما به صفحه سرور مجازی رایگان ایران مراجعه کرده و با قابلیت ها و مزایای استفاده از آن بیشتر آشنا شوید. در صورت داشتن هر گونه سوال و یا دریافت راهنمای استفاده از CDN میزبان کلود، کافیست با کارشناسان ما در ارتباط باشید.
جمع بندی
کشینگ یک صفحه داده هایی مثل تصاویر، فایل های HTML، CSS، جاوا اسکریپت و سایر انواع محتوا را در سرور یا فضایی از دستگاه کاربر ذخیره کرده و آن را در دفعات بعد سریعتر به کاربر نمایش می دهد. در این مطلب در خصوص نحوه کش کردن محتوای صفحات توسط مرورگرها و سرویس های CDN توضیحاتی ارائه شد. امیدواریم این پست برای شما مفید واقع شده باشد.
ارائه دهنده خدمات زیرساخت یکپارچه ابری