Loading...
ابزار رایگان

سازندهٔ هدر Cache-Control

دستورهای کش را انتخاب کن و هدر دقیق Cache-Control را کپی کن — به‌همراه قطعه‌کدهای آمادهٔ nginx و Apache. کاملاً در مرورگر تو اجرا می‌شود؛ چیزی به هیچ‌کجا ارسال نمی‌شود.

پیش‌تنظیم‌ها:

۱ · دستورها را انتخاب کن

۲ · نتیجه را کپی کن

هدر HTTP
Cache-Control: public, max-age=3600
nginx
add_header Cache-Control "public, max-age=3600" always;
Apache (.htaccess)
Header set Cache-Control "public, max-age=3600"

در CDN.com.tr دو راه هست. این هدر را از مبدأ خودت منتشر کن؛ در قانونی که Use browser cache time آن روشن است لبه از آن پیروی می‌کند و هدر بدون تغییر به مرورگر می‌رسد. یا اصلاً هدری ننویس و TTL را برای هر مسیر از 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 از آن پیروی کند؛ اگر ترجیح می‌دهی، همان مدت‌ها را برای هر مسیر از پنل تعیین کن. کش لبه، Auto SSL و WAF در هر دو حالت هست.

دیدن پلن‌ها