نمایش اطلاعات مورد نیاز کاربر در هر صفحه اینترنتی می بایست با کمترین زمان ممکن صورت بگیرد و همچنین کمترین درگیری را برای سروری که پذیرای سایت است ایجاد نماید. یکی از مهمترین مسیرهای دستیابی به این مهم استفاده از کش(cache) می باشد.
وب سایت ها دو نوع هستند، سایت های داینامیک و سایت های استاتیک. سایت های استاتیک client baseهستند، به این معنا که صفحات سایت در سمت کامپیوتر کاربر فراخوانی و پردازش می شوند، اطلاعات اینگونه سایتها در مرورگر کاربر ذخیره و هنگام فراخوانی صفحات، بارگذاری صفحات با استفاده از این اطلاعات انجام می شود. در اصطلاح، خروجی سایت های استاتیک با هر درخواست تغییر نمی کند.
سایت های داینامیک server base هستند، یعنی در سمت سرور پردازش می شوند و هنگام فراخوانی صفحات در سمت کاربر، اطلاعات از سمت سرور به مرورگر کاربر منتقل شده و نمایش داده می شود. با هر بار فراخوانی صفحات سایت، یک درخواست به سرور منتقل می شود و پس از پردازش اطلاعات، به مرورگر کاربر برگردانده می شود. در اصطلاح، خروجی سایت های داینامیک با هر درخواست تغییر می کند.
جابجایی و انتقال اطلاعات موجود در صفحات سایت از سمت سرور به سمت کلاینت، باعث بالا رفتن حجم دیتا و مصرف بالای پهنای باند سرور خواهد شد و این درگیری هزینه زیادی را بر هاستینگ ها تحمیل خواهد نمود. یکی از راه های کمتر کردن این بار ترافیکی، استفاده از output caching است.
یک صفحه
سایت که با زبان
ASP.net نوشته شده است را در نظر داشته باشید که برای نمایش صفحه، یک درخواست (query) به دیتابیس زده و اطلاعات جدولی را فراخوانی می کند. حال در نظر داشته باشید اطلاعات صفحه به بخش های داینامیک، نیمه داینامیک و استاتیک تقسیم بندی شود. این تقسیم بندی در
IIS برای تشخیص و به روز رسانی اطلاعات صفحات انجام می شود:
- اطلاعات استاتیک مانند کدهای پوسته ها، تصاویر و اطلاعاتی هستند که به ندرت تغییر می یابند.
- اطلاعات نیمه داینامیک اطلاعاتی هستند که در زمان های مقطعی تغییر می کنند.
- اطلاعات داینامیک، اطلاعاتی هستند که در هر فراخوانی صفحات تغییر می کنند به عنوان مثال اطلاعاتی که پیرو پر کردن فرم ها، به کاربر نمایش داده می شود.
خاصیت output caching خاصیتی در IIS است که با همزمانی با کامپوننت های مرتبط با کش در asp.net انجام می شود. به این صورت که اطلاعات نیمه داینامیک و استاتیک(در اصل، صفحات رندر شده) بعد از اولین load سایت، ذخیره و کش می شوند و تا زمانی که تغییراتی در آنها اعمال نشده است اطلاعات در مرورگر کاربر ذخیره می گردد. به این طریق تعداد درخواستهایی که به سمت سرور ارسال می شود بسیار کمتر خواهد بود و درنتیجه ترافیک بیشتری به سمت سرور روانه نخواهد شد و نیز پهنای باند کمتری مورد استفاده خواهد بود. همین مورد باعث بالا آمدن سریعتر سایت در سمت کاربر خواهد شد.
امکان cache در Net framework 4.0.
در نسخه های قبلی net framework. نیز امکان کش کردن دیتا در وجود داشت و با استفاده از تگ های output cache در صفحه و در فایل web.config از این امکان بهره مند می گشتیم. در .net framework 4.0 امکان ایجاد output cache های اختصاصی به وجود آمده است که می توان در کنترل های متعدد از آن ها بهره گرفت و بدین وسیله بر اساس کارکرد هریک از کامپوننت ها خروجی های مختلفی برای کش خروجی ایجاد نمود و از حافظه استفاده بهینه نمود.
استفاده از HTTP compression در کنار output caching
این خاصیت در IIS سرعت جابجایی اطلاعات بین IIS و مرورگر را افزایش می دهد که هم در سطح خود وب سایت و هم در سطح سرور قابل پیاده سازی می باشد. این ویژگی در کنار ویژگی output caching به سرعت بارگذاری اطلاعات صفحه کمک شایانی می نماید.