یکی از مواردی که می تواند در بهبود سرعت سایت و بارگزاری سریع آن تاثیرگذار باشد، استفاده از تکنیک cache control می باشد. در این مقاله قصد داریم تا با این مفهوم آشنا شده و نحوه بکارگیری آن را بررسی کنیم. با ما همراه باشید.

معرفی مفهوم cache control و روش کار با آنReviewed by نسترن خیرمند on Sep 14Rating: 5.0

اما پیش از پرداختن در مورد آموزش کار با cache control یا همان کنترل کش، لازم است تا تعریف کنیم که cache browser به چه معناست و لازمه استفاده از آن در مرورگرها چیست؟

حافظه مرورگر (cache browser) چیست؟

یکی از فاکتورهای مهم از نظر کاربر و هم از نظر گوگل سرعت بارگزاری سایت است. افزایش سرعت بارگزاری صفحات سایت به وسیله ذخیره فایل های پر استفاده روی مرورگری که کاربران برای جستجو از آن استفاده می کنند، را حافظه کش مرور یا (cache browser) گفته می شود. این تعریف به این معنی است که هر بار مرورگر کروم یا فایرفاکس شما وقتی صفحه ای را لود می کند، تمام فایل های HTML , CSS , JAVASCRIPT موجود در آن صفحه را هم دانلود می کند. برخی از سایت ها که مقدار این فایل هایشان زیاد است باعث می شوند که سایت دیرتر و با سرعت کمتری بارگزاری شود، استفاده از حافظه مرورگر کش نیز به همین دلیل است. سوال مهم این است که این فایل ها چرا موجب کاهش سرعت سایت می شوند؟ دو جواب کلی برای این مورد وجود دارد:

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

زمانی حافظه مرورگر داشته باشید، این فایل ها روی مرورگر کاربر ذخیره می شود و پس از اولین بازدید کاربر از سایت، برخی از موارد فایل های صفحه سایت را در مرورگرشان دارند و همین امر باعث افزایش لود شدن سایت می شود. یکی از دلایل مهم اهمیت حافظه مرورگر کش افزایش رضایت کاربر از سایت است تا برای دفعات بعدی هم به سایت مراجعه کند. دلیل دوم افزایش امتیاز سایت در سایت های Google page speed و GTMetrix است. فعال کردن قابلیت کش در مرورگرها زمانی اتفاق می افتد که یک وب مستر به صورت شخصی شده به مرورگرها اعلام کند که چه فایل هایی و تا چه زمانی باز شوند؟

کش مرورگر (cache browser)

مراحل فعال کردن cache browser

  • تغییر header در کدهای HTTP و تعریف تاریخ انقضا: قدم اول برای تغییر هدر در کدنویسی ها باید از فایل HT access که در تمام سرورها موجود و در دسترس است، استفاده کنید. (این فایل در ریشه اصلی هاست وجود دارد و با یک جستجوی ساده در کدهای صفحه می توانید آن را پیدا کنید.) برای تعریف مرورگر کش از یک نرم افزار ویرایشگر متن مثل نوت پد استفاده کنید؛ و سپس برای سایت در فایل HT access پارامترهای مختلف سایت را به گونه ای تعریف کنید که مرورگر فایر فاکس یا کروم تشخیص دهد که هر فایل را تا چه مدت در حافظه خودش نگه داری کند. کدهای زیر به شما کمک می کند تا زمان نگه داری و انقضای فایل های عکس با فرمت های مختلف، فایل های pdf، فایل های مربوط به اپلیکیشن و … را چگونه در حافظه کش مرورگر ذخیره کنید.

 

پس از وارد کردن این کدها آن را در فایل HT access ذخیره کنید و سپس از هر مرورگری که استفاده می کنید، refresh کنید.

نکته قابل توجه در اضافه کردن کدها این است که، برای این که مطمئن شوید این کدها را به درستی اضافه و ذخیره کرده اید، وارد سایت gtmetrix.com شوید و گزینه leverage browser را بررسی کنید. در صورتی که این گزینه نمره بالایی گرفته، یعنی کدها به درستی عمل می کند.

Cache control چیست؟

Cache control (کش کنترل) یکی از header های مختص پروتکل های http است که زمان و نحوه کش شدن را برای یک مرورگر تعیین می کند.

برای مثال سایت شما، یک لوگو یا تصویر منحصر به فرد دارد که زمان لود شدن سایت با کاربر نمایش داده می شود. این لوگو وقتی کاربر برای اولین بار وارد سایت می شود در مقایسه با دفعات بعدی ورود به سایت با سرعت کمتری آپلود می شود. یعنی وقتی مرورگر هدر مختص کش را همراه با فایل می بیند و برای باز شدن لوگو یا تصویر ابتدا باید آن را دانلود کند. وقتی که این لوگو به header به حافظه کش مرورگر با یک زمان مشخص اضافه شود، طبق زمانی که در کش مشخص کرده اید (مثلا ۱۰ دقیقه) تا ۱۰ دقیقه دیگر این لوگو در حافظه کش مرورگر ذخیره می شود و تا ۱۰ دقیقه دیگر وقتی کاربر وارد سایت شود، لوگو دوباره نیازی به دانلود شدن ندارد و از حافظه کش نمایش داده می شود. این مسئله باعث افزایش سرعت لود سایت می شود و در بهبود سئوی سایت بسیار موثر است.

مدت زمان ذخیره شدن فایل در کش با قابلیت Max Age

قابلیت max age یک خصوصیت در ساختار cache control است که با استفاده از آن می توانید زمان کش شدن یک فایل در مرورگر را با واحد ثانیه ذخیره و مشخص کنید. یعنی ۲۵۹۲۰۰۰ ثانیه معادل یک ماه است. برای مثال مقادیر زیر برای خصوصیت max age برای مدت زمان ذخیره شدن قابلیت کش نوشته و تعیین می شود:

Max age= 60 یک دقیقه

Max age= 3600 یک ساعت

Max age= 86400 یک روز

Max age= 604800 یک هفته

Max age= 2628000 یک ماه

Max age= 31536000 یک سال

تعریف cache control

۳ خصوصیت عمده دامنه کش

  • Public: از دستور public زمانی استفاده می شود که فایل ها امنیتی و حساس نیستند و برای بالا بردن سرعت سایت باید از کش استفاده کنید.
  • Private: از این خصوصیت زمانی استفاده می شود که می خواهید محتوای بارگزاری شده به شخص کاربر وابسته است و زمانی که کاربر جدید می خواهد وارد شود باید تغییر کاربری بدهد. در این مورد هم خصوصیات و فایل ها امنیتی و حساس نیستند اما فقط مختص یک نفر هستند.
  • No store: خصوصیت NO store به نام خصوصیت رسمی نیز شناخته و نامیده می شود. زمانی که از این خصوصیت برای فایل ها استفاده می شود، یعنی فیل های مشخص شده کش نمی شوند. استفاده از این خصوصیت برای فایل ها به این معنی نیست که فایل ها در وضعیت ایمن هستند بلکه به این معنی است که فایل ها فقط کش نمی شوند.

چه فایل هایی را کش کنیم؟

بحث اصلی در  cache control در اصل از این جا شروع می شود که هر سئوکار باید آن ها را بداند.

  • برای مثال فایل تصاویر که دارای فرمت های مختلف png، jpg، gif است. فایل تصاویر معمولا تغییر نمی کند و برای کش شدن بهترین زمان تعیین شده زمان یک سال یا معادل Max age= 31536000 است.
  • مدت زمان کش فایل های CSS: فایل های CSS مربوط به استایل کلی سایت است. در صورتی که مرتبا فایل های CSS سایت را تغییر می دهید بهتر است که مدت زمان یک هفته و حداکثر یک ماه را برای فایل های CSS را تعیین کنید.
  • مدت زمان کش فایل های ICO یا فایل Favicon که معمولا تغییری نمی کند، بهتر است که مدت زمان یک سال برای کش انتخاب شود.

خطرات انتخاب اشتباه browser caching

آن چه در سطر بالا گفته شد مدت زمان تقریبی و منطقی برای تعیین مدت زمان کش فایل های مختلف است. برای مثال در صورتی که برای فایل های java مدت زمان یک سال یا ۶ ماه را تعیین کرده باشید و در ماه اول بخواهید فایل ها را تغییر دهید و ویرایش کنید، این تغییرات در حافظه مرورگر کش ذخیره و ثبت نمی شود و مرورگر باز هم از حافظه مرورگر کش قبلی استفاده می شود؛ و فایل های جدیدی که در آن تغییر ایجاد کرده اید روی سرور آپلود نمی شود و تمام فرمت های مربوط به فایل های java  بهم می ریزد. خلاصه کلام این است که برای فایل های تعیین شده برای کش زمان زیاد و طولانی انتخاب نکنید.

استفاده از cache control در وب سرورهای مختلف

در این جا صحبت از این است که  برای هر نوع فایل از کش منحصر به فرد استفاده کنیم. برای مثال اگر وب سرور شما apache (آپاچی) است، بهتر است که از طریق http.cont برای انتخاب و ویرایش کش استفاده کنید، چون سرعت بهتری دارد. برای این کار لازم است که فایل http.cont را جستجو کنید و کدهای زیر را درون آن قرار دهید:

در صورتی که سرور شما NGINX است، باید از نوع ساختار زیر استفاده کنید:

در خط دوم Expires به معنی این است که کش تا ۳۶۵ روز دیگر منقضی می شود و اعتبار ندارد.