در ادامه مقاله درباره خطای Add Expire headers صحبت خواهیم کرد و بررسی میکنیم که چگونه رفع این مشکل کمک به بالا بردن سرعت سایت ما میکند.
نام: Add Expires headers
نوع: سرور
اولویت: بالا
میزان سختی: راحت
میانگین امتیاز: 25%
هر بار که شما از وب سایتی بازدیدی انجام میدهید لازم است که یک سری فایلهایی را دانلود کنید تا سایت قابل مشاهده باشد فایلهایی مانند، CSS، JS، HTML و عکسها که در کش مرورگر (یا کش محلی یا کش لوکال) ذخیره میشود. حال وقتی به صفحهی دیگری از آن سایت مراجعه میکنید موارد تکراری صفحات مثل لوگو سایت فایلهای CSS و غیره دیگر دوباره دانلود نمیشوند بلکه از طریق کش محلی مرورگر فراخوانی صورت میگیرد. پس به این ترتیب لازم نیست با هر بار لود کردن صفحههای سایت، فایلهای مشترک بین صفحات را دانلود کنید. این همان دلیلی است که باعث میشود در اولین بازدید از یک سایت زمان بیشتری برای لود شدن لازم باشد تا زمان لود صفحات در تکرار بازدید از همان سایت.
این عمل هم باعث صرفهجویی در حجم اینترنت بازدیدکننده میشود و هم تعداد درخواستهای سمت سرور را کاهش میدهد و صفحات سایت در دفعات بعدی سریعتر لود میشوند. حال نکته اینجا است که چه مدت باید اطلاعات در کش مرورگر بماند؟ باید تاریخ انقضایی برای فایلها مشخص شود و اگر تاریخانقضا برای اطلاعات درج نشود هر بار کاربر باید فایلهای مشترک بین صفحات را دانلود کند و آن موقع خطای Expires headers رخ میدهد. تاریخ انقضا به مرورگرها خاطرنشان میکند که کدام فایل را از سرور درخواست کند و کدام فایل را از کش مرورگر درخواست کند.
در ابتدا شما باید بازه تغییرات هر کدام از فایلهای خود را بدانید به این معنا که این نوع فایلها در طراحی سایت(طراحی سایت شرکتی، طراحی سایت فروشگاهی) شما هر از چندگاهی بهروز رسانی میشود و کدام یک از نوع فایلها تغییراتی پیدا نمیکنند. در پایین لیستی از انواع فایلها درج شده:
معمولا favicon ها در ساخت سایت تغییر نمیکنند و فایلهای عکس هم به ندرت تغییر میکنند و از طرفی گاهی فایلهای جاوااسکریپت تغییر میکنند ولی ممکن است فایلهای CSS تغییرات بیشتری داشته باشند و بر اساس همین موضوع ما تاریخ انقضای این فایلها را مشخص میکنیم تا باعث برطرف شدن مشکل Expires headers شود.
به کد زیر توجه کنید:
تاریخ انقصا با دستور ExpiresActive On
نیزفعال میشود همانطور که در خط ۱ توضیح داده شده است.
دستور بالا خط ۴ یک مقدار پیشفرض بر روی فایلهایی که تاریخ انقضا برای آنها تعیین نشده است قرار دادهایم و این فایلها اجازه دارند به مدت ۱ ماه در کش مرورگر کاربر ذخیره شوند و بعد از یک ماه مرورگر دوباره درخواست چنین فایلهایی را میدهد، خط ۳ توضیحات دستور خط ۴ است.
به ادامه کد توجه کنید:
دستور خط ۲ برای favicon است که به مدت یک سال میتواند در کش مرورگر ذخیره شود چرا که حتی بعد از سالها ممکن است favicon یک سایت تغییر نکند.
دستورات خط ۴ تا ۷ مربوط به کش انواع عکسها میباشد که هر کدام از عکسها از هر نوعی به مدت ۱ ماه میتوانند در کش کاربر ذحیره شوند.
دستور خط ۹ و ۱۱ به ترتیب برای فایلهای CSS و JS است و به مدت یک ماه در مرورگر کاربر ذخیره میشود.
دستورنهایی Expires headers:
دستور بالا باید در فایل htaccess قرار گیرد و برای پیدا کردن این فایل اصولا باید به مسیر public_html هاست خود رجوع کنید، اگر چنین فایلی را نداشتید ممکن است مخفی باشد و برای همین در تظیمات کنترل پنل خود فایلهای مخفی را show کنید و اگر باز چنین فایلی نبود کافی است New file را بزنید و نام .htaccess را درج نمایید تا ساخته شود، سپس دستور بالا را درج نمایید تا تغییرات لازم در کش صورت بگیرد.
توجه داشته باشید که برای رفع خطای Add Expires headers به شکل کامل، باید تمام فایلهای فراخوانی شده در هاست شما باشد، مثلا اگر عکسی یا فایلی را از سایت دیگر لود میکنید شما نمیتوانید برای آن فایل Expires headers تعریف کنید.