ویدئوی آموزشی خطای Specify a cache validator و Configure entity tags
خطای Specify a cache validator در GTmetrix رو در ادامه مباحث خطاهای جی تی متریکس بررسی میکنیم. از اهمیت و مفهومش در این مطلب براتون مینویسم. خب همینطور که از اسمش معلومه مربوط به کش میشه. کش چیه؟
هر وقت که شما از سایتی بازدید میکنین باید یه سری فایلها رو دانلود کین تا سایت رو بتونین کامل ببینین. فایلهایی مثل HTML,JS,CSS و عکس ها که در کش مرورگر ذخیره میشن. حالا اگه به صفحات دیکه ای از اون سایت برین، اون فایلهای تکراری دوباره دانلود نمیشن، چون در کش مرورگرتون ذخیره شده. برا همینه که اولین بازدید از یه سایت زمان بیشتری وقت میگیره تا بازدیدهای بعدی.
خطای Specify a cache validator در GTmetrix مربوط میشه به وقتیکه کش به خوبی تنظیم نشده باشه و به دو مورد اشاره داره هم به Last Modified وهم به ETag. این دو تا هر دو Header هستند. باید حداقل یکی تنظیم بشه تا این خطا نمایش داده نشه. البته در YSlow هم یه خطایی داریم با نام Configure entity tags که فقط مربوط به ETagهست. اگه ما خطای Specify a cache validator رو برطرف کنیم، خطای YSlow هم رفع میشه.
وقتی سرور، کش رو تنظیم میکنه اگه کش به خوبی تنظیم نشه این خطا بوجود میاد. یکی از خطاهایی که اگه توی Page Speed گوگل دیده باشید، خطای Specify a cache validator هست که معروفه. در بیشتر موارد فایلهایی رو نشون میده که در هاست ما نیست و مدیریتش از دسترس ما خارجه. هرچند به طور پیشفرض در بیشتر سرورها، cache validator فعاله و هدرهای لازم رو ارسال میکنه.
اگه سرور خوب تنظیم شده باشه یه سری محتوای هدر HTTP برای کش کرده فایلها سمت کاربر برای بهینه سازی سرعت سایت ارسال میکنه. این هدرها معمولا دو عمل اصلی رو انجام میدن. یکیش که معتبرسازی فایلهای کش به عهده ش هست Cache Validate و اون یکی Cache Length به معنای طول یا مقدار زمان کش هست. هر کدوم از اینها اگه تنظیم نشن مشکلاتی رو برای سایت ایجاد میکنن.
درباره Cache Length در مطلب خطای Leverage browser caching توضیح دادیم. خطای امروز مربوط میشه به Cache Validate.
این مدل کش چیکار میکنه؟ دو جور هدر یا درخواستهای HTTP ارسال میکنه. Cache Validate میگه فایلی که کش شده برای چه تاریخی یا برای چه ورژنی هست. اگه بخوایم آپدیتی انجام بدیم به کمک Cache Validate میتونیم این آپدیتها رو کنترل کنیم تا سمت کاربر فایلهای به روز ما لود بشه و مشکل Cache Lenght حل بشه. البته این نکته طلایی رو به خاطر داشته باشین که اینها فقط در صورتی درست عمل میکنن که فایلها رو در هاست خودمون داشته باشیم یعنی فایلهایی رو میتونیم مدیریت کنیم که در هاست ما موجود باشند.
دو تا هدر Last Modified و ETag در Cache Validate همین کار رو انجام میدن. این هدرها تاریخ آخرین تغییرات فایلها رو در خودشون نگهداری میکنن. این دو هدر درخواستی اسم دیگری هم دارن و به اونها Conditional requests یا درخواستهای شرطی هم گفته میشود. که مقدار این درخواست شرطی بسته به این داره که آیا فایل موردنظر تغییر کرده یا نه.
وقتیکه شما فایل یا صفحه ای رو تغییر و ویرایش میدین، باید این تغییرات در سمت کاربر هم اعمال بشه. وقتی کاربر وارد سایت شما میشه یه درخواست شرطی توسط هدری مجزا با عنوان If-Modified-Since ارسال میکنه. مقدار این هدر از Last-Modified گرفته شده. این هدر در سمت سرور بررسی میکنه که آیا تاریخ به روز شده یا نه. اگه پاسخ با کد 200ارسال بشه به معنای جواب مثبت هستو تاریخ تغییر کرده ولی کد 304 یعنی تاریخ تغییری نکرده و فایل موجود در کش کاربر باید استفاده بشه.
خب از اهمیت خطای Specify a cache validator و Configure entity tags گفتم براتون. این مطلب رو بسیار تکمیل تر میتونید در دوره ۸ ساعت افزایش سرعت سایت با استفاده از GTmetrix میزفا آکادمی ببینید و بیاموزید. منتظر نظراتتون هستیم.
روش کامل رفع این خطا را در دوره ۸ ساعت افزایش سرعت سایت با استفاده از GTmetrix براتون توضیح دادیم ادامه این محتوا و فیلم آموزشی آن برای دانشجویان دوره GTmetrix هست.
ورود به حساب کاربری دانشجو دوره نیستید؟ اینجا کلیک کنیداولویت این خطا برای بالا بردن سرعت سایت بالا است و میزان سختی رفع این خطا راحت است.
جهت مشاهده ۸ فیلم دوره آموزشی رفع خطاهای gtmetrix میتوانید دوره gtmetrix را تهیه کنید.