خطای 405 Method Not Allowed
وب سرورها، مانند مرورگرهای اینترنتی، به مشتریان از وضعیت پردازش درخواست ارسالی با کمک کدهای وضعیت HTTP اطلاع می دهند. بنابراین کدهای مختلفی وجود دارد که موفقیت یا عدم موفقیت یک درخواست را تأیید می کند – همراه با پیام های بسیار خاص. در حالی که برخی از این پیام ها به طور نسبتاً مکرری در استفاده روزانه از شبکه جهانی وب مشاهده می شوند، خطای 405 (روش مجاز نیست) یکی از پیام های خطای نادر است. در این مقاله متوجه خواهید شد که دقیقاً چه چیزی منجر به این پیام خطا می شود و چرا حل مشکل بر عهده اپراتور وب سایت است.
پشت خطای خطای 405 Method Not Allowed HTTP چیست؟
پروتکل انتقال ابرمتن (به اختصار HTTP) روش هایی را تعریف می کند که اقدامات احتمالی را که می توان در وب سرور مورد تماس انجام داد را نشان می دهد. به عنوان مثال، این شامل روش های زیر است:
- GET: اطلاعات مرتبط با یک منبع URL خاص را بازیابی کنید
- HEAD: اطلاعات هدر مرتبط با یک منبع URL را بازیابی کنید
- POST: داده ها را به وب سرور ارسال کنید – به عنوان مثال، داده های فرم
- PUT: داده های یک URL خاص را با داده های جدید منتقل شده توسط مشتری جایگزین کنید
- DELETE: داده های پشت URL مربوطه را حذف کنید
مدیر می تواند هر وب سرور را به گونه ای پیکربندی کند که روش های فردی مجاز یا غیر مجاز باشند. به عنوان مثال، اگر محتوای تعاملی در وب سایت وجود نداشته باشد، منطقی است که روش POST مجاز نباشد. زیرا کاربر هیچ گزینه ای برای وارد کردن داده های خود و ارسال آن به سرور ندارد. در غیر این صورت، پیغام خطای ذکر شده در بالا با کد وضعیت 405 ظاهر می شود که به مرورگر و کاربر آن اطلاع می دهد که این روش مجاز نیست.
عبارت دقیق پیام 405 HTTP از سروری به سرور دیگر متفاوت است. در اینجا چند عبارت رایج وجود دارد:
- روش 405 مجاز نیست
- 405 مجاز نیست
- روش مجاز نمی باشد
- خطای HTTP 405
- خطای HTTP 405 – روش مجاز نیست
- روش HTTP 405 مجاز نیست
- خطا: روش 405 مجاز نیست
- 405 – فعل HTTP که برای دسترسی به این صفحه استفاده می شود مجاز نیست
- وضعیت HTTP 405 – روش HTTP GET توسط این URL پشتیبانی نمی شود
خطای خطای 405 Method Not Allowed چه زمانی رخ می دهد؟
قبلاً اشاره کردیم که خطای 405 صرفاً به دلیل یک مشکل سمت سرور ایجاد می شود. اما از آنجایی که کد وضعیت 405 از نظر فنی به پیامهای خطای کلاینت تعلق دارد (کدهایی با الگوی 4xx)، به نظر نمیرسد که این منطقی باشد. اگرچه این تناقض به سرعت حل می شود:
اگر به عنوان یک کاربر مرورگر، درخواستی را با روش HTTP به وب سرور ارسال کنید که به دلیل پیکربندی آن اجازه نمی دهد، خطا از نظر سرور در سمت سرویس گیرنده قرار دارد.
– در این مورد، مشتری به سادگی یک درخواست اشتباه ارائه کرده است. سرور هنگام پردازش درخواست از این واقعیت آگاه نیست که شما فقط به پیشنهاد وب سایت علاقه مند هستید، برای مثال، فرم تماس را پر کنید.
به طور خاص سه سناریو می تواند منجر به پیام خطای “Method Not Allowed” شود:
- ممنوعیت روش HTTP مربوطه به دلیل پیکربندی نادرست سرورهای وب یا اجزای نرم افزاری است که قرار است عمل مربوطه را برای منبع URL مورد نظر انجام دهند.
- ممنوعیت روش HTTP از طرف اپراتور وب سایت است – در بیشتر موارد به دلایل امنیتی. این خطا در یک منبع URL پروژه وب مورد نظر است، به این دلیل که برنامه نویسی آن مستلزم مجاز نبودن روش آن است.
- روش HTTP توسط ارائه دهنده هاست اپراتور وب سایت مجاز نیست. این به ویژه در روش POST رخ می دهد که برای وارد کردن داده ها لازم است و توسط برخی از ارائه دهندگان به دلایل امنیتی هنگام دسترسی به اسناد HTML مسدود می شود.
خطای HTTP 405: چگونه مشکل را برطرف کنیم
اگر با پروژه وب مواجه شدید که پیام خطای 405 Not Allowed را نمایش می دهد، به سختی می توانید مشکل را حل کنید. در حالی که با سایر پیامهای HTTP معمولاً میتوانید با استفاده از ترفندهایی مانند تازه کردن صفحه، راهاندازی مجدد روتر یا بررسی تنظیمات پراکسی مشکل را حل کنید، این اقدامات در برابر خطای 405 بیفایده است. در این صورت منطقی است که با اپراتور یا مدیر وب سایت مسئول برای اطلاع از مشکل یا دریافت اطلاعات دقیق در مورد علل آن تماس بگیرید.
اگر خودتان مسئول سایتی هستید که کد HTTP 405 را به بازدیدکنندگان نمایش می دهد، شرایط متفاوت است:
بسته به علت پیام خطا، چندین گزینه برای حل مشکل دارید. برای جلوگیری از خشم کاربران خود و/یا جریمه شدن توسط موتورهای جستجو، باید این خطا را در اسرع وقت برطرف کنید.
راه حل 1: روش های HTTP را فعال کنید
اگر از علت پیام “روش 405 مجاز نیست” مطمئن نیستید، همیشه باید ابتدا به تنظیمات اجزای نرم افزاری که مسئول پاسخگویی به درخواست های HTTP هستند نگاه کنید. به طور معمول، این کار توسط وب سرور انجام می شود. اما اگر روش به سادگی فعال نباشد، یک پروکسی یا کنترل کننده HTTP از قبل متصل (در برنامه های وب ASP.NET) نیز می تواند مسئول این مشکل باشد. از آنجایی که برنامه های مختلف از نظر پیکربندی با یکدیگر متفاوت هستند، ابتدا باید نحوه عملکرد فعال یا غیرفعال کردن روش های HTTP برای هر نرم افزار را دریابید.
برای سرورهای وب آپاچی، برای مثال، روشهای فعال با کمک ماژول mod_allowmethods مشخص میشوند. این را می توان با استفاده از دستورالعمل AllowMethods در کانتینرهای کنترل کرد. که برای تعیین تنظیمات یک یا چند URL مورد نظر مورد نیاز است. یکی از پیکربندیهایی که دسترسی به منبع و همچنین ورود دادههای سمت سرویس گیرنده را امکانپذیر میکند، میتواند با ورودی زیر پیادهسازی شود:
<Location "/">
AllowMethods GET POST OPTIONS
</Location>
راه حل 2: کد منبع را پاک کنید
اگر شما عمداً یک روش HTTP را مسدود کرده اید، به عنوان مثال، برای تضمین ایمنی وب سایت (روش معمول برای روش PUT)، اما مشتری همچنان چنین درخواستی را برای بازیابی منابع URL انجام می دهد، این اغلب به دلیل برنامه نویسی نادرست وب سایت است. . بنابراین صفحه یا عنصر درخواستی به اشتباه با روش پیوند داده شده است، به همین دلیل است که خطای 405 نتیجه منطقی است. راه حل این است که کد مشکل دار را در سند HTML مربوطه پیدا کنید . و کد وارد شده را با روش درخواست صحیح جایگزین کنید. اگر تنظیمات سرور و کد منبع با هم تطبیق داده شوند، احتمال ناپدید شدن خطای HTTP 405 از پنجره مرورگر بازدیدکننده شما زیاد است.
راه حل 3: از سد امنیتی ارائه دهنده عبور کنید
همانطور که قبلاً ذکر شد، خطای 405 همچنین میتواند زمینهای داشته باشد که روشهای HTTP مربوطه برای انواع MIME خاص – مانند یک سند HTML، به عنوان مثال – توسط ارائهدهنده میزبان به دلایل امنیتی غیرفعال شده است. در این مورد، مطمئناً میتوانید با ارائهدهنده خود تماس بگیرید و درخواست تأیید کنید . اما اگر این امکان وجود ندارد، ترفندهایی وجود دارد که به شما امکان میدهد به هر حال از این روش برای پروژه وب خود استفاده کنید.
میتوانید وبسایت را با نوع MIME متفاوتی که برای روش مورد نظر در دسترس است، تحویل دهید تا مانع کار شود. به عنوان مثال، POST معمولاً برای صفحات HTML غیرفعال می شود، در حالی که این روش در اسناد PHP عمل می کند. اگر نوع پسوند را، به عنوان مثال، از index.html به index.php تغییر دهید، احتمال زیادی وجود دارد که مشکل “روش 405 مجاز نیست” را حل کرده باشید.
ترفند دوم پیاده سازی وب سایتی است که باعث خطای HTTP می شود به عنوان محتوای صفحه خطای نمایش داده شده 405. برای انجام این کار، کافی است صفحه مورد نظر را در یک پوشه جداگانه ذخیره کنید . آن را در فایل پیکربندی به عنوان پیام خطای رسمی 405 تعریف کنید:
ErrorDocument 405 /PathToFile/example.html
این راه حل دارای این عیب است، اما این که تمام دسترسی های صفحه موفقیت آمیز برای صفحه طبقه بندی شده و به عنوان خطا محاسبه می شود، که تجزیه و تحلیل آماری را پیچیده می کند.
خطای 405 Method Not Allowed
ترجمه شده توسط سایت دریای شرق از سایت
کپی بدون ذکر نام و لینک سایت دریای شرق ممنوع است !