کش سرور (Server Cache) و هدرهای انقضای مرورگر؛ کاهش فشار پایگاه داده
تولید محتوا در هر کلیک: چرا وبسایتهای پویا زیر بار ترافیک خم میشوند؟
سیستمهای مدیریت محتوا مثل وردپرس ماهیت پویایی دارند. هر بار که کاربری وارد یک برگه میشود، موتور پیاچپی بیدار شده، دهها اتصال به پایگاه داده ایجاد میکند، رکوردها را کنار هم میچیند و یک سند جدید میسازد. این چرخه برای یک بازدیدکننده در ثانیه مشکلی ندارد، اما هنگام ورود همزمان دهها کاربر یا ربات، سرور را زمینگیر میکند.
کش سرور پاسخی مهندسی به این چالش است؛ یعنی ذخیره نسخه نهایی آمادهشده و تحویل مستقیم آن بدون درگیر کردن حتی یک کوئری در پایگاه داده.
سایتی که کش سرور استاندارد ندارد، مانند رستورانی است که برای هر پرس غذا، دانههای گندم را در لحظه آرد میکند!
لایههای سهگانه کش: از مرورگر کاربر تا قلب پایگاه داده
یک معماری کش کامل در چند لایه مستقل عمل میکند تا هر درخواست در نزدیکترین فاصله ممکن به کاربر پاسخ داده شود.
شناخت دقیق این لایهها مانع از خطاهای رایج مثل نمایش اطلاعات اشتباه به کاربران واردشده به سایت میشود.
- کش مرورگر (Browser Cache): ذخیره فایلهای ثابت مثل لوگو، فونت و استایلها روی دستگاه کاربر برای دفعات بعد.
- کش تمامصفحه سرور (Full-Page Cache): ذخیره نسخه نهایی کدهای HTML روی حافظه رم سرور برای پاسخ آنی.
- کش پایگاه داده و آبجکت (Object Cache): استفاده از ابزارهایی مثل ردیس برای ذخیره نتایج جستجوهای پیچیده دیتابیس.
سربرگهای کلیدی کنترل کش: هدر Cache-Control و اعتبارسنجی
مرورگرها از طریق سربرگهای ارسالی وبسرور متوجه میشوند چه فایلی را تا چه مدتی باید در حافظه دستگاه نگه دارند و چه زمانی باید نسخه تازه را استعلام کنند.
تنظیم زمان انقضای طولانی (حداقل یک سال) برای فایلهای با پسوند ثابت، سرعت لود در بازدیدهای تکراری را به زیر ۱۰۰ میلیثانیه میرساند.
برای فایلهای ایستا مثل فونتها و تصاویر از سربرگ Cache-Control: max-age=31536000, immutable استفاده کنید تا مرورگر هرگز برای دانلود دوباره آنها درخواستی به سرور نفرستد.
پاکسازی هوشمند کش حین ویرایش و انتشار نوشته
یک کش قدرتمند باید هوشمند باشد. به محض اینکه شما مقالهای را منتشر یا ویرایش میکنید، کش همان صفحه و صفحات دستهبندی مرتبط باید فوراً منقضی شوند تا کاربر محتوای قدیمی را مشاهده نکند.
تنظیم دستی کش صفحات سبد خرید و حساب کاربری مانع از تداخل اطلاعات امنیتی خریداران خواهد شد.
دستور اقدام عملی
در ابزار Network مرورگر، یک صفحه را دو بار پشت سر هم رفرش کنید. در ستون Size بررسی کنید چند فایل با برچسب memory cache یا disk cache لود شدهاند؟ اگر این ستون حجم واقعی فایل را نشان میدهد، یعنی کش مرورگر برای آن منابع به درستی ست نشده است.