در این مقاله قصد داریم درباره مشکل رایج رفع خطای Specify a character set early و حل آن در جی تی متریکس صحبت کنیم.
خلاصهای از خطا Specify a Vary: Accept-Encoding header
نام: Specify a Vary: Accept-Encoding header
نوع: محتوا
اولویت: زیاد
میزان سختی: راحت
میانگین امتیاز: 88%
علت خطای Specify a Vary: Accept-Encoding header در جی تی متریکس چیست؟
یکی دیگر از درخواستهای HTTP مهم که تاثیر مناسبی در بهینه سازی سرعت سایت نیز دارد Vary: Accept-Encoding است. متاسفانه سایتهای ایرانی دوباره همانند بسیاری از خطاهای دیگر به اشتباه این ارور را تفسیر کردهاند و بسیار تعجب آور است که برای رفع خطا Vary: Accept-Encoding متاتگ <meta charset=”utf-8″> را پیشنهاد میدهند :/
برای رفع این خطا باید شما یک درخواست هدر HTTP از نوع Vary: Accept-Encoding را ارسال کنید و ربطی به متاتگ اشاره شده ندارد.
طبق توضیحات سایت معتبر kinsta وقتی شما هدر Vary: Accept-Encoding را در هاست خود فعال ندارید وب سرور یا CDN شما به جای ارسال فایلهای فشرده شده (همان GZIP بودن فایلها) فایلهای فشرده نشده را به اشتباه به مرورگرها ارسال میکند و این آسیب به بهینه سازی سرعت سایت شما خواهد زد ولی اگر هدر Vary: Accept-Encoding فعال باشد وب سرور یا CDN نسخه صحیح فایلها را به کاربران ارسال میکند. پس توجه داشته باشید که فعال بودن آن بسیار اهمیت دارد، هر چند در اکثر سرورها به شکل پیشفرض فعال است.
نحوه فعال سازی Vary: Accept-Encoding
رفع خطای Specify a Vary: Accept-Encoding header در وب سرویس آپاچی
اگر وب سرویس سایت شما Apache است کافی است فایل .htaccess موجود در ریشه هاست خود را edit کرده و دستور زیر را وارد نمایید.
<IfModule mod_headers.c> <FilesMatch ".(js|css|xml|gz|html)$"> Header append Vary: Accept-Encoding </FilesMatch> </IfModule>
رفع ارور Specify a Vary: Accept-Encoding header در وب سرویس NGINX
اگر وب سرویس سایت شما NGINX است کافی است فایل موجود در ریشه /etc/nginx/nginx.conf. خود را edit کرده و دستور زیر را وارد نمایید.
gzip_vary on
مطلب قبلی : رفع خطای Specify a cache validator و Configure entity tags