طراحی سایت



شرایط کش شدن یک صفحه سایت

شاید برایتان پیش آمده باشد که همه تنظیمات را در کش سرور و مرورگر اعمال کرده اید اما آخر هم به یک کش پایدار و مطمئن نرسیده اید
این از اون مواردی است که بقولی به آن فوت کوزه گری می گویند ما ده مورد از آنها را در زیر می آورم

  • هدر های expire (تاریخ انقضا) و max-age (طول عمر) modify (زمان آخرین تغییر) توسط سرور ارسال شود.
  • پاسخ کد وضعیت HTTP یکی از کدهای 200 ، 203 ، 300 ، 301 و یا 410 را داشته باشد.
  • نوع درخواست باید HTTP GET باشد (و نه PUT یا POST)
  • اگر در درخواست هدرهای مربوط به مجوز یا Authorization وجود داشته باشد پاسخ کش نخواهد شد
  • اگر در پاسخ سرور هدرهای مربوط به مجوز یا Authorization وجود داشته باشد پاسخ به شرطی کش خواهد شد که هدر Cache-Control ارسال شود و در پارامترهای ارسالی آن یکی از انتخاب های "s-maxage" یا "must-revalidate" یا "public" آورده شود.
  • اگر یو-آر-ال یا URL دارای query string یا پرامترهای متد GET از صفحه HTML باشد معمولا کش انجام نخواهد شد مگر اینکه علاوه بر هدر Expires مانند بند 5 هدر Cache-Control ارسال شود و در پارامترهای ارسالی آن یکی از انتخاب های "s-maxage" یا "must-revalidate" یا "public" آورده شود (طبق رفرنس RFC2616 و بخش 13.9 و 13.2.1)
  • اگر پاسخ سرور با کد 200 باشد حداقل یکی از هدرهای "Etag" یا "Last-Modified" یا "Expires" و یا مانند بند 5 هدر Cache-Control ارسال شود و در پارامترهای ارسالی آن یکی از انتخاب های "s-maxage" یا "must-revalidate" یا "public" آورده شود تا عمل کش کردن پاسخ سرور در مروگر انجام شود.
  • اگر هدر Cache-Control ارسال شود و یکی از انتخاب ها در آن "private" باشد کش انجام نخواهد شد مگر بصورت کش استاتیک (که ارزش امنیتی خیلی پایینی دارد و برای داده های مهم اصلا توصیه نمی شود)
  • به همین ترتیب اگر یکی از انتخاب های ما no-store در Cache-Control باش کش صورت نخواهد گرفت
  • بالاخره اینکه اگر در هدر Vary پاسخ ارسالی match-all "*" باشد کش صورت نمی گیرد (معمولا User-Agent است که بهتر است Accept-Encoding,User-Agent باشد تا همیشه کش موفقی داشته باشیم)
طراحی سایت,بهینه سازی سایت به همراه طراحی وب سایت و طراحی پرتال تخصص شرکت طراحی نونگار است جهت اطلاع از تعرفه طراحی سایت با ما تماس بگیرید