خوش آمدید به انجمن ای فری

بازدیدکننده گرامی برای دسترسی به تمامی امکانات در انجمن عضو شوید. پس از ثبت نام و ورود به سیستم ، می توانید موضوعات ایجاد کنید ، پاسخ به موضوعات موجود ارسال کنید ، به اعضای انجمن امتیاز دهید ، اقدام به خرید و فروش کنید ، و موارد دیگر. عضویت، سریع و کاملاً رایگان است ، پس منتظر چی هستی؟

درخواست راهنمایی

اگر نیاز به راهنمایی دارید درخواست خود را ثبت کنید

فروشگاه

قالب و افزونه و محصولات خود را میتوانید اینجا خرید و فروش کنید

دانلود منابع

قالب و افزونه های جدید و بروز را میتوایند از اینجا دانلود کنید

آموزش آموزش رفع خطای Specify a cache validator و Configure entity tags

WALKER

مدیر کل انجمن
عضویت
11/13/18
ارسال ها
6,100
امتیاز واکنش
5,486
محل سکونت
tehran
آنتی ویروس
983

یکی از خطاهای رایجی که هنگام تست سرعت سایت با GTmetrix بهش بر میخوریم با عنوان Specify a cache validator و Configure entity tags نمایش داده میشه که در بخش Yslow جی تی متریکس نمایش داده میشه و مربوط به کش سرور میشه. فایل‌هایی که در سرور کش میشن بستگی به نوع کش سرور هم بستگی داره که به چه شکلی بتونه به مرورگر اعلام بکنه که فایل‌ها در حالت کش هستند. یعنی وقتی شما فایل‌های یک صفحه که شامل چندین فایل مختلف هست رو کش میکنید، باید از طریق مرورگر به صورت صحیح در بازدیدهای بعدی اعلام کنید که آیا تغییری روی فایل‌ها یا این صفحه که کاربر در اون قرار داره صورت گرفته یا خیر؟ اگر تغییری صورت گرفته مربوط به چی بوده و چه فایل‌هایی باید از نو از سرور درخواست بشن تا با نسخه‌ای که به صورت کش شده داخل سیستم کاربر قرار داره آپدیت بشن.

در این آموزش قصد دارم به نحوه برطرف کردن خطای Specify a cache validator و Configure entity tags در GTmetrix بپردازم که با استفاده از اون میتونید با ساختار درست کش سرور آشنا شده و به صورت بهینه از کش سرور سایت برای بهبود سرعت سایت استفاده کنید.

هنگام کش شدن چه اتفاقی در سرور رخ می‌دهد؟
همونطور که در چند مورد از مقاله‌های آموزش GTmetrix که در مورد کش بودند عنوان کردم، فرآیند کش درخواستی هست که تحت HTTP بین سرور و مرورگر رد و بدل میشه و در اون مشخص میشه که چه فایل‌هایی برای چه مدتی کش بشن. این مدت زمان کش شدن رو با استفاده از Expires و فرآیندی که در هر بازدید بررسی میکنه ببینه آیا تغییری در فایل‌ها ایجاد شده یا نه رو Cache-Control مشخص می‌کنه. این دو مورد درواقع درخواستی هستند که در هدر اجرا میشن و در نهایت وضعیت Cache Length رو مشخص می‌کنند.

984

Cache Length چیست؟
دو هدر Cache-Control که برای تعیین مدت زمان انقضا مورد استفاده میگیره و بر حسب ثانیه مدت زمانی رو برای انقضا فایل‌های کش در نظر میگیره و Expires که برای تعیین تاریخ انقضا هست و بر اساس یک زمان دقیق انتخاب میشه، مشخص می‌کنند که یک فایل باید چه مدت زمانی به عنوان کش در مرورگر نگهداری بشه و اگه این وضعیت رو مشخص نکنید با خطای Leverage browser caching مواجه میشید. استفاده از این دو درخواست در هدر ضروری نیست، اما حتما باید حداقل از یکی از اینها استفاده کنید تا وضعیت کش رو در سرور برای مرورگر مشخص کنید. استفاده از هر دو گزینه هم میتونه مفید باشه و در جهت بهبود سرعت سایت یک گام جلوتر بردارید.

985

Cache Validate چیست؟
بعد از اینکه وضعیت Cache Length توسط دو درخواست هدر Cache-Control و Expires مشخص شد، حالا باید توسط Cache Validate که اینم توسط دو هدر HTTP با نام‌های Last-Modified و Etag مشخص میشه تعیین کنید که فایل کش شده برای چه تاریخ و چه ورژنی هست. اگر این دو مورد هم مشخص نشده باشند در این صورت با خطای Specify a cache validator در GTmetrix «واجه خواهید شد. این دو درخواست رو به عنوان درخواست شرطی می‌شناسیم که بر اساس یک سری شروط باید وضعیت کش صفحات رو مشخص کنند.

986

درخواست شرطی Last-Modified
توی این مدل بررسی برای اینکه فایل‌ها و صفحات کش شده آخرین بار چه زمانی تغییر کردن بر اساس یک تاریخ دقیق با استفاده از Last-Modified مشخص میشه و در هدر مرورگر قرار میگیره. بنابراین وقتی وارد یک صفحه از سایت میشید مرورگر ابتدا Last-Modified رو بررسی میکنه که ببینه وضعیت کش به چه صورتی هست و سپس بر اساس پاسخی که براش مشخص میشه، شروع به ادامه لود صفحه با استفاده از فایل‌های کش شده یا اینکه درخواست مجدد از سرور(بخاطر تغییر فایل‌ها) میکنه. این درخواست در مرورگر به شکل زیر مشخص خواهد شد.
کد
Last-Modified: Mon, 11 Jan 2017 13:17:22 GMT

حالا که این تاریخ در اولین بازدید به صورت کش شده مشخص شد، در بازدید بعدی کاربر از این صفحه ابتدا درخواستی ارسال میشه که مشخص بکنه این صفحه تغییراتی داشته یا نه. این تغییرات میتونه همون ویرایش محتوای صفحه یا فایل‌ها باشه که با استفاده از Last-Modified مشخص میشه. پس وقتی شما مثلا بعد از 3 روز تغییری در صفحه بدین، مقدار بالا به صورت زیر در هدر مرورگر نمایش داده میشه.
کد
Last-Modified: Mon, 14 Jan 2017 10:55:14 GMT

در این صورت وقتی بازدید کننده وارد سایت میشه ابتدا درخواستی به سرور ارسال میکنه که ببینه صفحه تغییر داشته یا نه. اینجا چون صفحه ما ویرایش شده و تغییراتی رو داشته، در این صورت پاسخ مثبت با کد 200 به مرورگر ارسال میشه و مرورگر میفهمه که این صفحه نسبت به بازدید قبلی که مربوط به سه روز پیش بوده تغییراتی رو به خودش گرفته. بنابراین مجددا فایل‌هایی که تغییر کردن با نسخه جدید از سرور دانلود و جایگزین میشن و دوباره در کش مرورگر قرار میگیرند. اگر در پاسخ ارسالی صفحه تغییری نکرده باشه به جای کد 200 کد 304 یا 304 Not Modified ارسال خواهد شد.

987

درخواست شرطی Etag
این درخواست شرطی هم دقیقا مشابه Last-Modified هست، با این تفاوت که در اینجا با تاریخ سر و کار نداریم. در این حالت وضعیت کش توسط قطعه کد هش شده توسط MD5 مشخص خواهد شد. به عنوان مثال در اولین بازدید با استفاده از کد MD5 مشابه نمونه زیر که برای مرورگر قابل خوندن هست مشخص میشه که آخرین تغییرات با این کد هش شده هست.
کد
ETag: "15f0fff99ed5aae4edffdd6496d7131f"

حالا اگه محتوای صفحه رو تغییر بدین و ویرایش کنید در این صورت کد هش شده بالا هم تغییر خواهد کرد و در این صورت مشابه نمونه قبلی توسط کد 200 یا 304 مشخص میشه که صفحه تغییری داشته یا خیر. تفاوتی که در اینجا وجود داره این هست که اگر تغییری صورت نگیره به صورت زیر مشخص خواهد شد.
کد
If-None-Match: "15f0fff99ed5aae4edffdd6496d7131f"

آموزش رفع خطای Specify a cache validator و Configure entity tags
حالا که با انواع هدر cache validator و entity tags آشنا شدید، برای اینکه ارور Specify a cache validator و Configure entity tags رو در جی تی متریکس برطرف کنید، باید هر دو یا حداقل یکی از درخواست‌های Last-Modified یا Etag رو از سمت وب سرور برای مرورگر ارسال کنید. معمولا درخواست Last-Modified به صورت عمومی در همه وب سرورها فعال هست و مشکلی از این بابت وجود نخواهد داشت. درخواست Etag هم در سرورهای نوع آپاچی با ورژن بالاتر از 2.4 و برای وب سرور NGINX که از نسخه 2016 به بعد ارائه شده فعال هست که برای این نوع سرورها نیازی به فعال کردن دستی ندارید.

حالا شاید این سوال براتون پیش بیاد که با این شرایط سرور که توضیح داده شد، پس چرا با خطا Specify a cache validator و Configure entity tags مواجه شدید؟

این مورد کاملا به کانفیگ سرور توسط شرکت هاستینگ شما بستگی داره و اگه با دو خطای Specify a cache validator و Configure entity tags در جی تی متریکس مواجه شدید باید از شرکت هاستینگ خودتون بخواین که این وضعیت رو اصلاح بکنند. چرا که شما دسترسی لازم رو برای تغییرات سرور ندارید و تنها در صورتی خودتون میتونید این خطاها رو برطرف کنید که به سرور دسترسی داشته باشید. اگر پاسخی از سمت هاستینگ برای اصلاح این موارد نگرفتید هم باید از هاست شرکت معتبری استفاده کنید که این موارد رو رعایت کرده باشه.
 
ارسال کننده موضوعات مشابه انجمن پاسخ ها تاریخ
WALKER آموزش آموزش رفع خطای Combine Images Using CSS Sprites آموزشهای وردپرس 0
WALKER آموزش آموزش رفع خطای Specify a character set early در GTmetrix آموزشهای وردپرس 0
WALKER آموزش آموزش رفع خطای Avoid AlphaImageLoader filter در GTmetrix آموزشهای وردپرس 0
WALKER آموزش آموزش رفع خطای افزونه های وردپرس آموزشهای وردپرس 0
WALKER آموزش آموزش رفع مشکل نصب افزونه و قالبهای وردپرس آموزشهای وردپرس 0
M مباحث و مشکلات آموزش نصب وب سرور Apache مباحث و مشکلات سیستم عامل ها 0
aliilapro آموزش آموزش کرک یا نال قالب جی نیوز آموزشهای وردپرس 0
arezoshomali مسیر آموزش برنامه نویسی اندروید را بشناسید آموزش های برنامه نویسی 0
lordmehdi درخواست آموزش قرار دادن گروه کاربری در پائین انجمن آموزشهای زنفورو 6
mona.habibizadeh آموزش همه کلیدهای میانبر در محیط Gmail اخبار 0
elecomco آموزش ترفند تبدیل اپلیکیشن فروشگاهی به کاتالوگ گفتگوی آزاد 0
sslri آموزش آموزش گرفتن تیک آبی اکانت اینستاگرام آموزش های نرم افزار 0
maede آموزش افزودن ابزارک (تولبار) به ادیتور متن در چتروم پشتیبانی زنفورو 2
afshin171 درخواست آموزش تغییر دامنه زنفور آموزشهای زنفورو 1
sslri آموزش آموزش رایگان فارسی سازی قالب و افزونه وردپرس آموزشهای وردپرس 0
afshin171 درخواست آموزش راست چین و فارسی کردن قالب وردپرس آموزشهای وردپرس 1
afshin171 درخواست افزونه یا آموزش براس سئو کردن درخواست قالب و افزونه 0
aliilapro آموزش آموزش غیرفعال کردن اپدیت ویندوز 10 آموزش های سیستم عامل ویندوز 0
alirahmani7443 راهنمایی در مورد قالب مرکز آموزش وردپرس قالب های وردپرس 1
Admin آموزش آموزش فعالسازی جستجوی پیشرفته در دسکتاپ ویندوز 10 آموزش های سیستم عامل ویندوز 0
sslri آموزش آموزش کامل ساخت شماره مجازی تلگرام رایگان آموزش های پرمیوم 1
P آموزش دسترسی به [ شبکه TOR] با دو کلیک آموزش های سیستم عامل ویندوز 0
F آموزش رایگان سئو وردپرس آموزشهای وردپرس 1
sslri نرم افزار دانلود ربات کامنت گذار در سایت ها + آموزش ویدئویی درخواست و دانلود نرم افزار 2
WALKER آموزش آموزش افزونه W3 Total Cache برای افزایش سرعت وردپرس آموزشهای وردپرس 0
soheilnew درخواست آموزش ساخت گروه کاربری vip با قابلیت پرداخت پشتیبانی زنفورو 0
A آموزش طراحی سایت با وردپرس آموزشهای وردپرس 0
WALKER آموزش آموزش تصویری قفل کردن کامپیوتر از راه دور در ویندوز 10 توسط Dynamic Lock آموزش های سیستم عامل ویندوز 0
WALKER آموزش آموزش تغییر فونت پیش فرض ویندوز 10 آموزش های سیستم عامل ویندوز 0
WALKER آموزش آموزش فعال سازی تم Light ویندوز 10 آموزش های سیستم عامل ویندوز 0
WALKER آموزش آموزش غیرفعال کردن کورتانا در ویندوز 10 آموزش های سیستم عامل ویندوز 0
M آموزش طراحی اپ برای ساعت اپل اخبار 1
A آموزش هک برنامه subcake اندروید با لاکی پچر آموزش ها 0
M آموزش استفاده و شخصی سازی Action Center در ویندوز 10 آموزش های نرم افزار 0
WALKER آموزش آموزش نمایش نقشه گوگل در سایت آموزشهای وردپرس 0
M آموزش ساخت واترارک با استفاده از نرم افزار Arclab Watermark Studio آموزش های نرم افزار 0
M آموزش بالا بردن امنیت گوشی با استفاده از نرم‌افزار Lookout Security Antivirus اندروید آموزش های نرم افزار 1
M آموزش رجیستر کردن IDM (کرک) آموزش های نرم افزار 0
M آموزش ساخت اکانت Origin آموزش های نرم افزار 0
M آموزش ساخت اکانت Steam درخواست کرک و فعال ساز نرم افزارها 0
M آموزش نصب بازی Fortnite آموزش های نرم افزار 0
WALKER آموزش آموزش نصب چایلد تم وردپرس آموزشهای وردپرس 0
saeedGeo آموزش فعال سازی ssl رایگان بر روی دامنه آموزش ها 0
WALKER آموزش آموزش نصب و راه اندازی افزونه MemberPress آموزشهای وردپرس 0
WALKER آموزش آموزش راه اندازی و تنظیم افزونه امنیتی Wordfence آموزشهای وردپرس 0
WALKER آموزش آموزش کار با افزونه Polylang آموزشهای وردپرس 0
TheFlash آموزش دانلود برخی از برنامه های پولی بازار و مارکت های دیگر (تصویری) آموزش های پرمیوم 0
A آموزش آموزش دانلود از سایت فیلیمو با افزونه مرورگر فایرفاکس آموزش های پرمیوم 1
A آموزش نصب دو بازی همزمان در اندروید آموزش های برنامه نویسی 0
WALKER آموزش آموزش حذف فیلد آدرس وب سایت از نظرات وردپرس آموزشهای وردپرس 0

موضوعات مشابه

shape1
shape2
shape3
shape4
shape7
shape8
بالا