بنیان گذار شرکت راهکارهای هوشمند روتیک - فعال در حوزهی هوش مصنوعی و علوم داده
انواع خطاهای درخواست HTTP و راهحل آنها

400 Bad Request
این کد خطا نشان دهندهی آن است که نحو (Syntax) درخواست HTTP ارسال شده نامعتبر است.
این موارد دلایل احتمالی رخ دادن چنین خطایی میباشد:
کوکی هایی که در مرورگر کاربر در ارتباط با سایت ثبت شده اند با مشکل مواجه شده اند. خالی کردن Cache و Cookie ها میتواند این مشکل را برطرف نماید.
ضعف درخواست به دلیل خطاها یا مشکلات مرورگر
خطاهای انسانی در راستای تولید دستی درخواست HTTP مانند استفاده از CURL.
401 Unauthorized
این کد خطا بیانگر تلاش تایید اعتبار نشده یا به درستی تایید اعتبار نشده برای دسترسی به یک منبع (محتوای دیجیتال) میباشد. این موضوع بدین معنی است که کاربر برای دسترسی به محتوای محافظت شده، میبایست اطلاعاتی صحیح جهت احراز هویت خویش ارائه کند.
نمونهی سادهی رخداد این کد خطا را میشود در تلاش برای دسترسی به منبعی که توسط HTTP محافظت میشود یافت نمود. در این مورد کاربر تا زمانی که نامکاربری یا گذرواژه ی صحیح موجود در پروندهی .htpasswd را ارائه نکند، کد خطای 401 دریافت خواهد نمود.
403 Forbidden
این کد خطا بدین معناست که کاربر درخواست معتبری از نوع HTTP ارسال نموده است اما سرور به دلیل ضعف دسترسی وی، از این دسترسی ممانعت به عمل می آورد. اگر شما به اشتباه این کد را دریافت میکنید، راه حل های مشخصی برای رفع این مشکل وجود دارد:
سطح دسترسی پرونده ها
این خطا معمولا زمانی رخ میدهد که کاربری که درحال اجرای وب سرور میباشد، با دسترسی ناکافی برای خواندن پرونده، نمیتواند به آن دسترسی پیدا کند.
مثال:
کاربر در تلاش برای دسترسی به ایندکس وب سرور از آدرس زیر است: http://example.com/index.html
پردازش عملگر وب سرور تحت سلطهی کاربر www-data است.
در سرور، پروندهی ایندکس در آدرس /usr/share/nginx/html/index.html قرار گرفته است.
اگر کاربر درحال دریافت کد خطای 403 میباشد،بدین معناست که کاربر www-data دسترسی کافی برای خواندن پرونده ندارد. پس عمدتا، سایر دسترسی های این پرونده باید بر روی خواندن تنظیم شود. راه حال متفاوتی برای اطمینان از این موضوع وجود دارد، ولی دستور زیر در شرایط کنونی میتواند مشکل را حل کند:
sudo chmod o=r /usr/share/nginx/html/index.html
.htaccess
یکی دیگر از پتانسیل های رخداد چنین خطایی، اغلب به صورت داخلی، استفاده از یک پروندهی .htaccess میباشد. این پرونده میتواند از دسترسی یک آیپی خاص یا محدودهای از آیپیها به بعضی منابع جلوگیری کند.
اگر کاربر به اشتباه این کد خطا را دریافت میکند، از نبود یک پروندهی .htaccess اطمینان حاصل کنید.
اندیس پروندهی مورد نظر یافت نشد
اگر کاربر در تلاش برای دسترسی به یک پوشه باشد که شامل هیچ پروندهی Index نبوده و همپنین ماژول لیست کردن پوشهها فعال نباشد؛ وب سرور این کد خطا را تولید خواهد نمود. برای مثال اگر کاربر در تلاش برای دسترسی به http://example.com/emptydir/ و در اینجا هیچ پروندهی Index ای در این پوشهی خالی وجود نداشته باشد، این کد خطا تولید خواهد شد.
اگر میخواهید ماژول لیست کردن پوشهها فعال شود، به تنظیمات وب سرور مراجعه نمایید.
404 Not Found
این کد خطا نشان دهندهی آن است که کاربر مجاز به برقراری ارتباط با سرور میباشد اما وب سرور قادر به یافتن منبع مورد نظر کاربر نیست.
این کد خطا در گسترهی عظیمی از وضعیت ها رخ خواهد داد. اگر این خطا به اشتباه توسط کاربر دریافت میشود، راه حل های زیادی برای رفع این مشکل وجود دارد:
پیوندی که کاربر را به سرورتان هدایت میکند دارای خطاهای تایپوگرافی نیست ؟
کاربر پیوند درستی را وارد نموده است؟
این پرونده در جای درستی در سرور موجود است؟ آیا جابهجا یا حذف شده است؟
آیا تنظیمات سرور دارای استناد صحیح به مسیر ریشه است (درست تنظیم شده است) ؟
آیا کاربری که پردازش عملگر وب سرور را در اختیار دارد حق داخل شدن به پوشهای که پروندهی مورد نظر آنجاست را دارد؟
آیا منبع به وسیلهی یک symbolic (همان shortcut) در دسترس است؟ اگر چنین است، از تنظیم بودن وب سرور جهت دنبال کردن symbolic ها مطمئن شوید.
500 Internal Server Error
این کد خطا بدان معناست که سرور به دلیل نامشخصی قادر به پردازش درخواست ارسالی نمیباشد. بعضی اوقات این کد زمانی که کدهای 5xx خاص تر مناسب باشند، نمایان میشود.
بیشترین علت رخ داد چنین خطایی، تنظیمات اشتباه سرور (.htaccess نادرست) یا نبود پکیجها (اجرای یک پروندهی PHP بدون نصب درست PHP) میباشد.
502 Bad Gateway
این کد خطا بدان معناست که این سرور، یک درگاه یا سرور پراکسی میباشد، و یک پاسخ معتبر از سرورهای پشتیبان دریافت نمی کند که در واقع آنها باید درخواست را انجام دهند.
اگر سرور مورد نظر یک سرور پروکسی معکوس است، مانند یک متعادل کننده بار (Load Balancer) ، در اینجا چند مورد برای بررسی وجود دارد:
سرورهای پشتیبان که درخواست های HTTP به آنها ارسال می شود، سالم هستند؟
پروکسی معکوس به درستی با خصوصیات مناسب Backend مشخص شده، پیکربندی شده است؟
اتصال شبکه بین سرورهای Backend و سرور پروکسی معکوس سالم است؟
اگر سرورها می توانند در سایر پورت ها ارتباط برقرار کنند، فایروال به ترافیک بین آنها اجازه تردد می دهد؟
اگر برنامه وب شما برای گوش دادن سوکت پیکربندی شده، اطمینان حاصل شود که آیا سوکت در مکان صحیح وجود دارد و آیا دارای مجوز مناسب است؟
503 Service Unavailable
کد وضعیت 503 یا خطای سرویس غیر قابل دسترس، به این معنی است که سرور بیش از حد تحت فعالیت بوده و یا تحت تعمیر و نگهداری است. این خطا به این معنی است که سرویس باید در برخی موارد قابل دسترس باشد.
اگر سرور تحت تعمیر و نگهداری قرار نگیرد، این می تواند نشان دهد که سرور به اندازه کافی CPU یا منابع حافظه ای برای رسیدگی به تمام درخواست های ورودی ندارد یا اینکه وب سرور نیاز به پیکربندی دارد تا کاربران ، موضوعات یا فرآیندها بیشتری را مجاز کند.
504 Gateway Timeout
کد وضعیت 504، یا خطای وقفه دروازه، به این معنی است که سرور یک درگاه یا پروکسی سرور است و از سرورهای پشتیانی در مدت زمان مجاز پاسخ نمی گیرد.
این معمولا در شرایط زیر اتفاق می افتد:
اتصال شبکه بین سرور ها ضعیف است.
سرور پشتیبان که درخواست را انجام می دهد، به دلیل عملکرد ضعیف، بسیار کند است.
مدت زمان وقفه دروازه یا پروکسی سرور خیلی کوتاه است.
ترجمه شده از: وبسایت DigitalOcean
مطلبی دیگر از این انتشارات
جغدهای شب باهوشترند یا فاختههای صبح؟
مطلبی دیگر از این انتشارات
اینترنت ماهواره ای: بیم ها و امیدها
مطلبی دیگر از این انتشارات
هنگام توقف زمان چه رخ خواهد داد؟