Cache Server خدماتدهندهای است که در مراکز خدماتدهنده اینترنت نصب شده و صفحات وب یا فایلهای جانبی صفحات وب را بر روی خود ذخیره میکند تا در صورت درخواستِ دوباره کاربران به مشاهده آن صفحات، آنها را دوباره از سرور اصلی بارگزاری نکرده و آنها را از محل ذخیره خود برای کاربر بفرستد تا سبب کاهش هزینه پهنای باند گردد.
Cache Serverها بر پایه این اصل بنا شدهاند که چند کاربر ممکن است نیاز به مشاهده پایگاهها یا منابع یکسان داشته باشند (برای نمونه ممکن است 30% کاربران یک خدماتدهنده اینترنت، سایتهای یکسانی را مشاهده میکنند؛ برای نمونه یک سایت خبری یا یک سایت عمومی)
Cache Server اولین تقاضایی که برای مشاهده یک سایت (برای نمونه iranjoman.com) شد را در خود ذخیره میکنند. از این به بعد هر کاربر دیگری که مایل به دیدن این صفحه باشد، نسخه ذخیره شده بر روی Cache Server را دریافت کرده و دوباره سایت از سرور اصلی دریافت نمیشود.
اگر چه باید گفت که Cache Server مکانیزمهایی برای تشخیص ایجاد تغییر در نسخه ذخیره شده بر روی سرور خود و نسخه اصلی روی سرور را دارند؛ ولی در هنگام طراحی یک سایت، این مکانیزمها به درستی پاسخ نمیدهد. زیرا تغییراتی که طراح در سایت میدهد لحظه به لحظه است و Cache Server این احتمال را نمیدهد که این سایت به این سرعت تغییر کرده باشد، بنابراین فایلهای style.css و فایلهای تصویری را که در درون خود ذخیره کرده است (که قدیمی بوده و نسخههای جدیدی که شما به تازگی ارسالی کردهاید را شامل نمیشود) را برای کاربر میفرستد و از این رو شما تغییرات انجام شده خود را نمیبینید.
شاید برایتان این پرسش پیش بیاید که چرا سرویسدهندگان خدمات وب Cache Server نصب میکنند؟ پاسخ ساده است، خدمات دهندگان اینترنت برای پهنای باند هزینه میکنند و از این طریق میتوانند سبب کاهش هزینههای خود در زمینه پهنای باند باشند.
کدام Cache Server
باید بدانیم که ما همیشه با توجه به اینترنتی که از آن استفاده میکنیم با چند Cache Server برابر هستیم. برای نمونه اگر در سازمان شما اینترنت از طریق ISAServer برای کاربران Share شده باشد و Cache Server در آن فعال شده باشد، در این صورت شما در نخستین گام با Cache Server داخلی سازمان خود برابر هستید. همچنین اگر سازمان شما از سرویسدهنده اینترنت x سرویس گرفته باشد و این سرویسدهنده اینترنت، Cache Server نصب کرده باشد یا شاید حتی ماژول سختافزاری Cache داشته باشد، شما در گام دوم با Cache Server سرویسدهنده خود برابر هستید.
همچنین همه میدانیم که همه مرورگها نیز به نوعی دارای یک Cache Server هستند که فایلها را در آن ذخیره میکنند. این Cache Server در IE با نام Temporary InternetFiles و در FireFox با نام Browsing History شناخته میشود.
راههای مبارزه با Cache Server
استفاده از کلید Ctrl + F5: این راه تنها به درد مبارزه با Cache Server مرورگر میخورد. در واقع شما به جای این که هر بار Cache مرورگر را خالی کنید، میتوانید با زدن کلید Ctrl + F5 از مرورگر بخواهید که فایلها را دوباره از خدماتدهنده اینترنت دریافت کند. این راه برای مبارزه با Cache Server خدماتدهنده اینترنت کارا نیست.
فریب Cache Server با تغییر ظاهری URL:
برخی پیشنهاد میکنند که با حذف www یا اضافه کردن چند کاراکتر Slash در پایان آدرس Cache Server را فریب داد. یعنی اگر دفعه اول سایت خود را به صورت http://www.sample.com دیدهاید این بار به صورت http://sample.com یا به صورت http://sample.com/// ببینید. زیرا هر بار CacheServer فکر میکند که با سایت تازهای روبرو است و از این رو سایت را دوباره از سرور اصلی دریافت میکند. اما این روش با Cache Serverهای پیشرفته امروزی جواب نمیدهد. به عبارت دیگر Cache Serverهای امروزی (برای نمونه در Cache Server موجود در ISA Server همه آدرسهای بالا یکسان هستند) افزون بر این، حتی اگر Cache Server این دو آدرس را یکسان تشخیص ندهد، باز یک مشکل اساسی باقی است. منابعی که در صفحات شما به کار رفته است (برای نمونه یک فایل CSS) هنوز با آدرس پیشفرضی که شما آنجا نوشتهاید فراخوانی میشود و باز هم Cache Server جلوی آن را میگیرد.
استفاده از فی.لت.ر شکن یا ************:
این روش اگر چه پاسخ میدهد ولی یک مشکل اساسی دارد. سرویسدهنده از این به بعد آدرسی صفحهای را که فی.لت.رشکن دریافت کرده است Cache میکند
تنظیم Cache-Cotnrol در HTML به صورت زیر:
این روش هم معمولا پاسخ نمیدهد؛ زیرا بیشتر Cache Serverها جوری تنظیم شدهاند که به این Tag اهمیتی نمیدهند.
Cache Serverها بر پایه این اصل بنا شدهاند که چند کاربر ممکن است نیاز به مشاهده پایگاهها یا منابع یکسان داشته باشند (برای نمونه ممکن است 30% کاربران یک خدماتدهنده اینترنت، سایتهای یکسانی را مشاهده میکنند؛ برای نمونه یک سایت خبری یا یک سایت عمومی)
Cache Server اولین تقاضایی که برای مشاهده یک سایت (برای نمونه iranjoman.com) شد را در خود ذخیره میکنند. از این به بعد هر کاربر دیگری که مایل به دیدن این صفحه باشد، نسخه ذخیره شده بر روی Cache Server را دریافت کرده و دوباره سایت از سرور اصلی دریافت نمیشود.
اگر چه باید گفت که Cache Server مکانیزمهایی برای تشخیص ایجاد تغییر در نسخه ذخیره شده بر روی سرور خود و نسخه اصلی روی سرور را دارند؛ ولی در هنگام طراحی یک سایت، این مکانیزمها به درستی پاسخ نمیدهد. زیرا تغییراتی که طراح در سایت میدهد لحظه به لحظه است و Cache Server این احتمال را نمیدهد که این سایت به این سرعت تغییر کرده باشد، بنابراین فایلهای style.css و فایلهای تصویری را که در درون خود ذخیره کرده است (که قدیمی بوده و نسخههای جدیدی که شما به تازگی ارسالی کردهاید را شامل نمیشود) را برای کاربر میفرستد و از این رو شما تغییرات انجام شده خود را نمیبینید.
شاید برایتان این پرسش پیش بیاید که چرا سرویسدهندگان خدمات وب Cache Server نصب میکنند؟ پاسخ ساده است، خدمات دهندگان اینترنت برای پهنای باند هزینه میکنند و از این طریق میتوانند سبب کاهش هزینههای خود در زمینه پهنای باند باشند.
کدام Cache Server
باید بدانیم که ما همیشه با توجه به اینترنتی که از آن استفاده میکنیم با چند Cache Server برابر هستیم. برای نمونه اگر در سازمان شما اینترنت از طریق ISAServer برای کاربران Share شده باشد و Cache Server در آن فعال شده باشد، در این صورت شما در نخستین گام با Cache Server داخلی سازمان خود برابر هستید. همچنین اگر سازمان شما از سرویسدهنده اینترنت x سرویس گرفته باشد و این سرویسدهنده اینترنت، Cache Server نصب کرده باشد یا شاید حتی ماژول سختافزاری Cache داشته باشد، شما در گام دوم با Cache Server سرویسدهنده خود برابر هستید.
همچنین همه میدانیم که همه مرورگها نیز به نوعی دارای یک Cache Server هستند که فایلها را در آن ذخیره میکنند. این Cache Server در IE با نام Temporary InternetFiles و در FireFox با نام Browsing History شناخته میشود.
راههای مبارزه با Cache Server
استفاده از کلید Ctrl + F5: این راه تنها به درد مبارزه با Cache Server مرورگر میخورد. در واقع شما به جای این که هر بار Cache مرورگر را خالی کنید، میتوانید با زدن کلید Ctrl + F5 از مرورگر بخواهید که فایلها را دوباره از خدماتدهنده اینترنت دریافت کند. این راه برای مبارزه با Cache Server خدماتدهنده اینترنت کارا نیست.
فریب Cache Server با تغییر ظاهری URL:
برخی پیشنهاد میکنند که با حذف www یا اضافه کردن چند کاراکتر Slash در پایان آدرس Cache Server را فریب داد. یعنی اگر دفعه اول سایت خود را به صورت http://www.sample.com دیدهاید این بار به صورت http://sample.com یا به صورت http://sample.com/// ببینید. زیرا هر بار CacheServer فکر میکند که با سایت تازهای روبرو است و از این رو سایت را دوباره از سرور اصلی دریافت میکند. اما این روش با Cache Serverهای پیشرفته امروزی جواب نمیدهد. به عبارت دیگر Cache Serverهای امروزی (برای نمونه در Cache Server موجود در ISA Server همه آدرسهای بالا یکسان هستند) افزون بر این، حتی اگر Cache Server این دو آدرس را یکسان تشخیص ندهد، باز یک مشکل اساسی باقی است. منابعی که در صفحات شما به کار رفته است (برای نمونه یک فایل CSS) هنوز با آدرس پیشفرضی که شما آنجا نوشتهاید فراخوانی میشود و باز هم Cache Server جلوی آن را میگیرد.
استفاده از فی.لت.ر شکن یا ************:
این روش اگر چه پاسخ میدهد ولی یک مشکل اساسی دارد. سرویسدهنده از این به بعد آدرسی صفحهای را که فی.لت.رشکن دریافت کرده است Cache میکند
تنظیم Cache-Cotnrol در HTML به صورت زیر:
1
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
این روش هم معمولا پاسخ نمیدهد؛ زیرا بیشتر Cache Serverها جوری تنظیم شدهاند که به این Tag اهمیتی نمیدهند.
آخرین ویرایش: