رفتن به محتوای اصلی
آریا گستران

کش CDN در لاراول و فروشگاه؛ چه چیزهایی ذخیره شوند و چه چیزهایی نه؟

مدیر سایت۳ دقیقه مطالعه
cdn cache cover

CDN می‌تواند نسخه‌ای از محتوای قابل کش را نزدیک‌تر به کاربر نگه دارد تا درخواست‌ها همیشه به سرور اصلی نرسند. اما پاسخ یکسان برای همهٔ کاربران، با صفحهٔ حساب و سبد خرید فرق دارد. تنظیم اشتباه کش روی اطلاعات شخصی، فقط مسئلهٔ سرعت نیست؛ می‌تواند باعث نمایش محتوای نامناسب به کاربر دیگر شود.

در این راهنما، منظور از کش CDN، کش مشترک میان کاربران است. کش مرورگر و کش داخل برنامه هم وجود دارند، اما سیاست آن‌ها لزوماً یکسان نیست. برای امکانات سرویس آریا، صفحهٔ CDN و تنظیمات جاری محصول را بررسی کنید.

معمولاً چه فایل‌هایی گزینهٔ خوبی برای کش هستند؟

تصاویر عمومی محصول، فونت‌ها و فایل‌های CSS و JavaScript که برای همه یکسان‌اند، معمولاً گزینه‌های مناسبی هستند. مدت نگهداری باید با روش انتشار هماهنگ باشد. اگر فایل نسخه‌دار با نام تازه منتشر می‌کنید، می‌توان سیاست متفاوتی از فایلی داشت که همیشه با همان نام تغییر می‌کند.

«عمومی» بودن را از محتوای پاسخ تشخیص دهید، نه صرفاً پسوند URL. مسیری با ظاهر تصویر یا فایل هم ممکن است به کاربر یا مجوز دسترسی وابسته باشد.

کدام بخش‌ها را از کش عمومی خارج کنیم؟

  • ورود، خروج و بازیابی رمز.

  • حساب کاربری، موجودی، سفارش‌ها و اطلاعات شخصی.

  • سبد خرید، ثبت سفارش و پرداخت.

  • پنل مدیریت و پاسخ API وابسته به کاربر یا نشست.

این یک نقطهٔ شروع برای بررسی است، نه فهرست کامل تمام مسیرهای هر برنامه. نام مسیرها و رفتار برنامهٔ واقعی را مشخص کنید. اگر لازم است بخشی از API عمومی کش شود، باید مستقل طراحی و بررسی شود؛ همهٔ APIها را یکسان حساب نکنید.

Cache-Control را ساده و دقیق بخوانیم

طبق مستندات Cache-Control در MDN، no-store درخواست می‌کند پاسخ ذخیره نشود. private یعنی پاسخ برای کش خصوصی است و نباید در کش مشترک ذخیره شود. no-cache به معنی «هرگز ذخیره نکن» نیست؛ استفادهٔ دوباره به اعتبارسنجی نیاز دارد.

وجود یک هدر به‌تنهایی بررسی را تمام نمی‌کند. قواعد CDN، وب‌سرور و برنامه باید هماهنگ باشند. گزینه‌ای که به‌اجبار کل سایت را کش می‌کند ممکن است سیاست مورد انتظار برنامه را تغییر دهد. رفتار نهایی را در پاسخ واقعی ببینید.

کوکی، پارامتر و زبان چه اثری دارند؟

اگر پاسخ با ورود کاربر، زبان، ارز یا پارامتر تغییر می‌کند، روش ساخت کلید کش و شرایط عبور از کش مهم می‌شود. فرض نکنید تمام CDNها به شکل یکسان کوکی و پارامتر را مدیریت می‌کنند. گزینه و محدودیت همان سرویس را بخوانید و از نام‌گذاری حدسی تنظیمات پرهیز کنید.

مثال فروشگاه: تصویر محصول با سبد خرید فرق دارد

تصویر عمومی یک محصول می‌تواند برای چند کاربر یکسان باشد. اما سبد خرید آن‌ها معمولاً متفاوت است. اگر صفحهٔ سبد به‌عنوان نسخهٔ عمومی مشترک ذخیره شود، ممکن است محتوای نادرست نمایش داده شود. این دو مسیر باید سیاست جدا داشته باشند، حتی اگر هر دو در یک دامنه‌اند.

قبل از انتشار چگونه آزمایش کنیم؟

در محیط مجاز، با دو حساب آزمایشی جدا بررسی کنید. تغییر سبد، خروج از حساب و مشاهدهٔ دوباره را امتحان کنید و مطمئن شوید اطلاعات یک حساب در دیگری ظاهر نمی‌شود. هم‌زمان، هدر پاسخ و نشانهٔ HIT، MISS یا BYPASS را مطابق مستندات سرویس بخوانید. نبودن یک نشانهٔ خاص، در همهٔ CDNها معنی یکسان ندارد.

بعد از تغییر فایل عمومی، بررسی کنید نسخهٔ تازه واقعاً نمایش داده می‌شود. پاک‌سازی کش می‌تواند در انتشار لازم باشد، اما جای اصلاح قاعدهٔ اشتباه را نمی‌گیرد. نتیجه و مسیرهای آزمایش‌شده را ثبت کنید؛ یک صفحهٔ موفق، سلامت تمام سایت را ثابت نمی‌کند.

اگر سایت لاراول است از کجا شروع کنیم؟

فهرست مسیرهای شخصی، API و فایل‌های عمومی را با تیم توسعه آماده کنید. سپس تنظیمات CDN را مرحله‌ای اعمال و نتیجه را روی سایت واقعی کنترل کنید. برای انتخاب زیرساخت، سرویس CDN آریا و پلن میزبانی متناسب با منابع و نیاز برنامه را کنار هم بررسی کنید؛ CDN به‌تنهایی جای بهینه‌سازی برنامه و پایگاه داده را نمی‌گیرد.

مطالب مرتبط