مفهوم کَش یا Cache
در ابتدا اجازه دهید در قالب مثالی مفهوم Cache را بیان کنیم ، فرض کنید برای دسترسی به مکان خاصی نیاز به یک عدد ورودی داشته باشیم، و برای به دست آوردن آن عدد نیاز به یکسری محاسبات خاص و صرف هزینه و زمان باشد تا نهایتا به آن عدد راه یافته و اجازه ورود به آن مکان داده شود، حال فرض کنید بار دیگر تمایل به دسترسی به آن مکان خاص را داشته باشیم، اگر عددی که در اولین مراجعه به دست آوردیم را در جایی ذخیره کرده باشیم، بدون انجام محاسبات مجدد و بدون صرف هزینه به آن عدد دسترسی خواهیم داشت، این دقیقا همان کاریست که Cache انجام میدهد.
Cache به معنی مکانی برای ذخیره سازی موقت داده ها و دسترسی و استفاده سریع از آنها در آینده میباشد.
مهمترین هدف Cache بالابردن سرعت در دسترسی به داده ها و صرفه جویی در مصرف منابع و پهنای باند میباشد.
نمونه هایی از آن کش مرورگرها، Cache server ها ،حافظه هایCache ، نرم افزارهای با قابليت Cache ، کش DNS سرور ها و بسیاری دیگر میباشند.
حافظه Cache به صورت کلی به دو قسمت سخت افزاری و نرم افزاری تقسیم میگردد .
1- کَش افزاری:
حافظه cache سخت افزاری عبارت است از حافظه ی پنهانی که در کنار CPU به منظور دسترسی سریعتر به اطلاعات وجود دارد.
جهت بیشتر شدن سرعت پردازش CPU ، حافظه ها یی به نام Cache در CPU ها تعبیه گشته است و روش کار بدین صورت است که یکسری اطلاعات پرکاربرد مانند آدرسها و بیت های داده در قسمت cache در CPU قرار میگیرد.
چنانچه CPU به اطلاعاتی نیاز داشته باشد، برای بالا بودن سرعت عمل ابتدا به حافظه Cache مراجعه کرده تا در صورتی که این اطلاعات از قبل در آن ذخیره شده باشد به سرعت به آنها دسترسی داشته باشد، و چنانچه این اطلاعات در حافظه Cache موجود نباشد به سراغ RAM رفته و اطلاعات را از آنجا میخواند و این اطلاعات را در Cache خود ذخیره کرده تا در مراجعات بعدی دسترسی سریع به این داشته باشد.
2- کَش نرم افزاری:
Cache مرورگر:
همانطور که میدانید مرورگرها نرم افزارهایی هستند که برای مشاهده اطلاعات موجود در اینترنت استفاده میشوند، نظیر مرورگر های Chrome ، Firefox ، Internet Explorer ، Safari و ...
مرورگرها نیز دارای قابلیت Cache کردن اطلاعات هستند، بدین معنی که چناچه وارد وبسایتی شوید، فایل های موجود در آن صفحه مانند تصاویر موجود در سایت، فایل های HTML ، CSS ، Javascript و ... در حافظه Cache مرورگر ذخیره میشود.
فرض کنید شما در زمان دیگر به همان وبسایت مراجعه کنید ویا دکمه ی Back مرورگر را جهت مشاهده مجدد صفحه قبلی فراخوانی کنید. در این حالت، در صورتی که مرورگر شما اطلاعات را ذخیره نکرده باشد، میبایست مجددا تمامی اطلاعات را از سرور دانلود کند که این امر هم نیاز به زمان جهت دانلود مجدد اطلاعات داشته و هم پهنای باند بیشتری مصرف میگردد.
در نتیجه با قابلیت کش مرورگر، به اطلاعاتی که قبلا مشاهده کردیم دسترسی سریعتری داریم و پهنای باند مصرفی ما کاهش میابد.
چنانچه تمایل دارید اطلاعات وبسایت ها از Cache مرورگر خوانده نشود و مستقیما از سرور خوانده شود، کافیست در صفحه مربوطه در مرورگر دکمه های Ctrl+F5 ویا CTRL+Shift+Delete را بفشارید و همچنین این امکان وجود دارد که از تنظیمات مرورگر خود کلیه کش های موجود را حذف نمایید.
Cache سرور :
سرور به معنای سیستم یا کامپیوتری است که وظیفه خدمات دهی به کاربران را دارد و مسئولیت ذخیره و نگهداری اطلاعات ، صفحات و یا محتویات اینترنت را دارد.
با توجه به کاربرد و مزایای Cache و با توجه به عملکرد سرور اطلاعات پر استفاده نظیر WebPage های پربازدید در حافظه Cache قرار میگرد تا در مراجعات بعدی توسط کاربر و درخواست مشاهده وبسایت سرعت بازبینی افزایش یابد.
به طور مثال سایتی نظیر Google که هر روزه کاربران زیادی به آن مراجعه میکنند، را تصور کنید. اگر برای هر درخواستی نیاز به مراجعه به سرور اصلی گوگل باشد، در هر بار مراجعه پهنای باند مصرف میگردد و ممکن است به دلیل درخواست های زیاد به سرور در شبکه ترافیک ایجاد شده و سرعت دسترسی به وبسایت به شدت کاهش یابد.
اما اگر از Cache server در یک شبکه داخلی استفاده شود، چنانچه برای اولین بار درخواست به سرور ارسال گردد (بطور مثال مشاهده وبسایت گوگل)، پاسخ ازوب سرور اصلی دریافت میگردد که شامل صرف زمان و پهنای باند میباشد، و سپس این اطلاعات در Cache سرور ذخیره شده و چنانچه کاربر دیگری همین درخواست را (مشاهده وبسایت گوگل) داشته باشد از طریق Cache سرور به آن دسترسی خواهد داشت و نیازی به مراجعه به وب سرور اصلی نمی باشد.
استفاده از Cache Server بیشتر توسط ISP ها و یا شرکت های خدمات هاستینگ استفاده میگردد، ازمزایای آن میتوان به افزایش سرعت دسترسی به اطلاعات و در نتیجه جلب رضایت مشتری و همچنین کاهش مصرف پهنای باند اشاره کرد.
قابل ذکر است که cache Server ها در طی بازه های زمانی خاص Refresh میشوند تا چنانچه تغییراتی روی اطلاعات و یا وبسایت ها، صورت گرفته قابل مشاهده باشند
در برخی موارد (بطور مثال هنگامی که محتویات داخل یک صفحه وب تغییر کرده اما بدلیل کش شدن در سرور نتیجه را نمایش نمی دهد.) میتوانید Cache Server ها را فریب دهید تا اطلاعات از سرور اصلی به دست شما برسد، برای این کار کافیست تغییراتی جزئی را در آدرس (URL) مربوطه ایجاد نمایید. به طور مثال به جای وارد کردن آدرس http://tajanweb.com/ ، آدرس فایل اصلی سایت http://tajanweb.com/index.php را وارد نمایید، در این حالت Cache Server مربوطه متوجه تفاوت در آدرس ها شده و گمان میکند که آدرس جدید وارد گشته و درخواست را از وب سرور (منبع مربوطه) لود میکند.
Cache DNS :
DNS مخفف Domain Name Server است و وظیفه ی تبدیل نام دامنه به آدرس IP را دارند تا بتوان به سرور وبسایت مربوطه دسترسی داشت.
DNS cache نتایج پرس و جوی DNS ها را برای مدت زمان خاصی (با توجه به تنظیمات DNS سرور) در خود نگه میدارد تا در مراجعات بعدی دسترسی به نیم سرور های هر دامنه با سرعت بیشتری انجام شود، Cache دی ان اس، باعث کاهش ترافیک DNS در اینترنت شده و در نتیجه بازده DNS سرور را با افزایش سرعت پاسخ دهی به کاربران افزایش میدهد.
Cache DNS علاوه بر DNS سرور ها، در ISP ها ، روتر ها ، مرورگر ها و همچنین بر روی سیستم عامل موجود میباشد.
هنگامی که از طریق مرورگر، یک وبسایت را مشاهده میکنیم، قابلیت DNS Caching در سیستم عامل ، DNS مربوط به وبسایت را Cache کرده تا در مراجعات بعدی دسترسی به وبسایت با سرعت بیشتری انجام شود.
حال فرض کنید DNS های وبسایتی (و در نتیجه IP آن) تغییر کند و اطلاعات وبسایت از سرور دیگری خوانده شود، اگر برای مشاهده وبسایت از Cache DNS استفاده شود، همچنان اطلاعات وبسایت از سرور قبلی خوانده میشود، برای جلوگیری از این قبیل مشکلات cache Server ها در طی بازه های زمانی خاص Refresh میشوند.
همچنین امکان این وجود دارد که با اجرای دستور زیر DNS Cache موجود در سیستم عامل و یا مرورگر را حذف نمایید تا مجددا درخواست به نیم سرورها ارسال شده و از آنجا خوانده شود:
روی دکمه start کامپیوتر کلیک نمایید. سپس روی All program و سپس Accessories کلیک کنید. گزینه Command Prompt را انتخاب نمایید و فرمان زیر را در Command Prompt تایپ نمایید: ipconfig /flushdns
در انتها پس از پاکسازی این پیغام را دریافت خواهید کرد: “Successfully flushed the DNS Resolver Cache”