سازندهٔ هدر Cache-Control
دستورهای کش را انتخاب کن و هدر دقیق Cache-Control را کپی کن — بههمراه قطعهکدهای آمادهٔ nginx و Apache. کاملاً در مرورگر تو اجرا میشود؛ چیزی به هیچکجا ارسال نمیشود.
۱ · دستورها را انتخاب کن
۲ · نتیجه را کپی کن
در CDN.com.tr فایل پیکربندی ویرایش نمیکنی — کش را برای هر مسیر از Delivery Rules در پنل تنظیم کن؛ این دستورها به همان گزینهها نگاشت میشوند.
هر دستور Cache-Control چه میکند
هدر Cache-Control به مرورگرها و کشهای CDN/پراکسی میگوید آیا میتوانند پاسخی را ذخیره کنند، کجا و برای چه مدت. تنظیم درست آن یکی از بزرگترین بردها برای سرعت صفحه و بار origin است. معنای هر دستور بالا چنین است.
public در برابر private
public به هر کشی — از جمله CDN یا پراکسی مشترک — اجازه میدهد پاسخ را ذخیره کند. private ذخیره را فقط به مرورگر کاربر نهایی محدود میکند؛ برای پاسخهای شخصیسازیشده یا احرازهویتشده که هرگز نباید به کاربر دیگری داده شوند از آن استفاده کن.
max-age و s-maxage
max-age=N یعنی پاسخ چند ثانیه «تازه» میماند (بدون اعتبارسنجی مجدد ارائه میشود). s-maxage=N برای کشهای مشترک (CDN تو) جای max-age را میگیرد، پس میتوانی در edge طولانی کش کنی و مرورگرها را روی بازهٔ کوتاهتر نگه داری — مثلاً max-age=0, s-maxage=3600.
no-cache در برابر no-store
شبیه به نظر میرسند اما فرق دارند: no-cache اجازهٔ کش میدهد اما پیش از هر استفادهٔ مجدد اعتبارسنجی با origin را الزامی میکند (برای HTML متغیر خوب است). no-store کش را کاملاً ممنوع میکند — چیزی در هیچ کشی نوشته نمیشود؛ برای دادهٔ حساس و مختص هر درخواست استفاده کن.
stale-while-revalidate و stale-if-error
stale-while-revalidate=N اجازه میدهد کش، پاسخ کمی کهنه را فوراً بدهد و در پسزمینه تازهاش کند — بازدیدکنندگان هرگز منتظر origin نمیمانند. stale-if-error=N اگر origin از دسترس خارج شد آخرین نسخهٔ سالم را میدهد و سایتت را در حوادث سرِپا نگه میدارد.
immutable
نشان میدهد محتوا در طول max-age هرگز تغییر نمیکند، پس مرورگرها حتی هنگام بارگذاری مجدد اعتبارسنجی را رد میکنند. برای فایلهای ایستای hashدار مانند app.9f2c1.js عالی است — با یک max-age طولانی همراه کن: public, max-age=31536000, immutable.
must-revalidate و proxy-revalidate
وقتی پاسخ کهنه شد، must-revalidate ارائهٔ آن را بدون بررسی نخست با origin ممنوع میکند (بدون تحویل کهنهٔ خاموش). proxy-revalidate همین قاعده را فقط بر کشهای مشترک اعمال میکند و به مرورگرها آزادی بیشتری میدهد.
دستورهای رایج
فایل ایستای hashدار: public, max-age=31536000, immutable — «برای همیشه» کش کن؛ با تغییر فایل، hash هم تغییر میکند.
HTML پشت یک CDN: public, max-age=0, s-maxage=3600, stale-while-revalidate=86400 — مرورگرها همیشه اعتبارسنجی میکنند، edge نسخهٔ کششدهٔ HTML را میدهد و در پسزمینه تازه میکند.
شخصیسازیشده/احرازهویتشده: private, no-store — هرگز توسط CDN یا پراکسیهای مشترک کش نمیشود.
میخواهی این قوانین خودکار اعمال شوند؟
CDN.com.tr هدرهای کش را برای هر مسیر از پنل تنظیم میکند — بدون فایل پیکربندی، همراه با کش در edge، Auto SSL و WAF.