آموزش رفع ارور 406 Not Acceptable
ارور 406 با عنوان Not Acceptable یک کد وضعیت پاسخ http است و نشان دهنده این موضوع است که کلاینت با استفاده از هدرهای پذیرش (Accept-headers) پاسخی را درخواست کرده است که سرور قادر به انجام دادن آن نیست.
معمولا نیز نتیجه به این صورت است که کاربر (مرورگر) یک مجموعه از کاراکترهای قابل قبول و زبان را مشخص می کند که باید به آنها پاسخ داده شود، ولی سرور قادر به ارائه این موارد در قالب یک پاسخ نیست.
در این آموزش می خواهیم به چند روش برای رفع این ارور بپردازیم.
با ما همراه باشید.
ارور Not Acceptable 406 به عنوان یک ارور سمت کلاینت طبقه بندی می شود، اما لزوما به این معنا نیست که علت اصلی بروز این ارور از سمت کاربر باشد. بلکه ممکن است به علت تنظیمات اشتباه در تنظیمات وب سرور نیز روی داده باشد.
علل اصلی ارور 406 :
1 – بررسی پارامترهای هدر درخواست
همانطور که اشاره شد، Not Acceptable نشان می دهد که کاربر (مرورگر) درخواستی را به سرور ارسال کرده است اما این درخواست شامل هدرهای پذیرش (Accept-header) خاصی بوده است که به سرور الزام می کند پاسخ دریافتی، تنها زمانی معتبر است که حاوی نوع خاصی از اطلاعات باشد.
ممکن است کاربر در هدر درخواست خود از پارامتر Accept-Language برای تعیین یک زبان استفاده کند.
برای مثال زبان فرانسوی (Accept-Language: fr)، اما اگر سرور نتواند پاسخی را به این زبان ارائه دهد، ممکن است تنها پاسخ مناسب دریافتی از سرور ارور Not Acceptable باشد.
در نتیجه در گام اول باید پارامترهای هدر درخواست را مورد بررسی قرار دهیم.
2 – URL نادرست
از دلایل رایج دیگر این ارور، وارد کردن یک URL نادرست می باشد. بسیاری از سرورها درخواست های غیرمنتظره به منابعی که کاربر نباید به آنها دسترسی داشته باشد را مجاز نمی دانند. ممکن است درخواستی که به صورت URL ارسال می شود نادرست باشد که باعث می شود کاربر نوع خاصی از پاسخ را درخواست کند.
برای مثال یک درخواست به صورت https://site.com?json ممکن است به سرور نشان دهد که پاسخ JSON مورد نیاز است و در نتیجه در خروجی، Not Acceptable مشاهده شود.
ارور 406 می تواند به این معنا باشد که URL درخواستی معتبر است، اما مرورگر ممکن است نوع درخواست مورد نظر را به اشتباه تفسیر کند.
لذا در بررسی این ارور باید URL و پارامترهای آن نیز مورد بررسی قرار بگیرند.
3 – افزونه ModSecurity
ModSecurity که از آن به عنوان Modsec نیز نام برده می شود، یک فایروال برنامه وب (Web Application Firewall : WAF) است که قابلیت فیلتر درخواست ها و پاسخ های HTTP را در قالب یک ماژول امنیتی در سرویس های میزبانی وب فراهم می سازد و با شناسایی فرآیندهای غیر متعارف نسبت به قطع دسترسی و نمایش یک پیام هشدار اقدام می کند.
هشدار نشان داده شده توسط ModSecurity عموما در قالب پیام Not Acceptable در مرورگر ظاهر می شود.
چنانچه با ارور Not Acceptable مواجه شده اید، می توانید Rule های ModSecurity را مورد بررسی قرار دهید و در صورت نیاز آن ها را ویرایش کنید.
امیدواریم این آموزش مورد توجه شما قرار گرفته باشد.
بررسی ارور 406 و روش های برطرف کردن آن