۸ خطای HTTP و راه‌حل‌های آن‌ها
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 9 دقیقه

۸ خطای HTTP و راه‌حل‌های آن‌ها

پروتکل انتقال ابر متن یا Hypertext Transfer Protocol (HTTP) یک پروتکل کلاینت-سرور (Web browser – Web Server) برای انتقال اطلاعات است. در این پروتکل، اطلاعاتی که از طرف مشتری/کلاینت به سرور ارسال می‌شود را یک درخواست یا Request و اطلاعاتی که از طریق سرور به کلاینت ارسال می‌گردد را یک پاسخ یا Response می‌نامند.

پاسخی که توسط کلاینت دریافت می‌شود از طریق یک کد وضعیت ۳ رقمی ارسال می‌شود که عدد اول آن از ۱ تا ۵ است. بیشتر اوقات به کدهای ۱ تا ۳ توجه چندانی نمی‌شود چرا که خطاهای مهم در کد وضعیت‌های ۴ و ۵ قرار دارد. در زیر می‌توانید هر پنج عدد و توضیحات مربوط به آن‌ها را مشاهده کنید:

  • کدهایی که با عدد ۱ شروع می‌شوند حاوی پاسخ‌های آگاهی بخشی یا Informational Responses هستند.
  • کدهایی که با عدد ۲ شروع می‌شوند را کدهای وضعیت موفقیت آمیز یا Successful Responses می‌نامند.
  • کدهایی که با عدد ۳ شروع می‌شوند شامل پیام‌های تغییر مسیر یا Redirection Messages می‌شوند.
  • کدهایی که با عدد ۴ شروع می‌شوند شامل خطاهایی هستند که مربوط به کلاینت هستند.
  • کدهایی که با عدد ۵ شروع می‌شوند شامل خطاهایی هستند که مربوط به سرور هستند.

همانطور که گفته شد در این مقاله ما در ارتباط با دو کد وضعیت ۴ و ۵ صحبت خواهیم کرد و خطاهای عمومی مربوط به این دو را بررسی می‌کنیم. راه‌حل‌هایی که در این مقاله بررسی خواهیم کرد راه‌حل‌های کلی هستند که در بیشتر مواقع به طور دقیق پاسخ داده اند اما ممکن است در برخی مواقع نیز راهگشا نباشند.

درخواست خراب یا Bad Request با کد وضعیت 400

کد وضعیت ۴۰۰ زمانی توسط سرور ارسال می‌شود که درخواست ارسال شده توسط کلاینت برای سرور نامعتبر و یا غیر قابل درک باشد. چند دلیل عامیانه که باعث می‌شوند این خطا اتفاق بیافتد عبارت است از خطاهای زیر:

  • وب آدرس اشتباه و غیر معتبر
  • استفاده از کوکی غیر معتبر یا منقضی
  • آپلود فایلی که به لحاظ حجمی توسط سرور مجاز نیست

برای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:

  • بررسی وب آدرس درخواستی به لحاظ صحت و وجود
  • پاک کردن کش مربوط به DNS
  • پاک کردن کوکی و کش مربوط به مرورگر
  • کم کردن حجم یا فشرده سازی فایلی که قصد آپلود آن را دارید

احراز هویت نامعتبر یا Unauthorized با کد وضعیت 401

زمانی که برای انجام کاری سرور شما را مجبور به انجام دادن عملیات احراز هویت می‌کند و شما این کار را به درستی انجام نمی‌دهید این خطا اتفاق می‌افتد. به صورت کلی خطای 401 زمانی اتفاق می‌افتد که یکی از مشکلات زیر رُخ بدهد:

  • نام کاربری و رمز عبور غیر معتبر
  • درخواستی که توسط سرور رد شده و یا غیر معتبر خوانده شود
  • کلاینتی که از طرف سرور برای انجام عملیات احراز هویت و... محدود شده باشد

برای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:

  • بررسی کنید که در آدرس درخواستی نهایی شما همه چیز درست باشد
  • حتما درستی نام کاربری و رمز عبور خود را بررسی کنید
  • کش DNS را پاک کنید
  • کوکی مرورگر را پاک کنید
  • عملیات لاگ‌-این کردن را از اول شروع کنید

ممنوع یا Forbidden با کد وضعیت 403

کد ممنوع یا 403 زمانی اتفاق می‌افتد که سرور در ارائه پاسخ دقیق به یک کلاینت شناخته شده شکست بخورد. دلایلی مانند مجوز دسترسی یا محدود کردن کلاینت از طرف خود سرور از دلایل اصلی اتفاق افتادن چنین کد وضعیتی است. در زیر می‌توانید دلایل کلی برای این خطا را مشاهده کنید:

  • محتوای منبع درخواستی خصوصی بوده و سرور اجازه دسترسی را نمی‌دهد
  • کلاینت به صورت مشخص از دسترسی پیدا کردن به بخشی از اطلاعات منع می‌شود
  • محتوای درخواستی تنها توسط گروه خاصی از کاربران (بسته به مجوز دسترسی، موقعیت مکانی (مثالا اگر یک کشور تحریم باشد و نتواند از خدمات یک وبسایت یا سرویس استفاده کند) و...)
  • دسترسی آدرس IP یک کلاینت ممنوع شده است

برای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:

  • از صحت آدرس درخواستی اطمینان حاصل کنید
  • کوکی و کش مرورگر خود را پاک کنید
  • ممکن است به دلیل بروزرسانی‌های وبسایت مشکلاتی غیر منتظره پیش بیاید پس صبر کرده و در زمان دیگری مجددا درخواست کنید
  • مطمئن شوید که شما مجوز دسترسی به قسمت مورد نظر را دارید
  • در نهایت می‌توانید با فراهم کننده سرویس مورد نظرتان صحبت کنید و علت را از وی جویا شوید

پیدا نشد یا Not Found با کد وضعیت 404

شناخته شده‌ترین کد وضعیتی که بیشتر ما با آن مواجه شده‌ایم کد وضعیت ۴۰۴ است. زمانی که کلاینت یک درخواست به سرور ارسال می‌کند و سرور نمی‌تواند برای آن درخواست محتوایی پیدا کند این کد وضعیت نشان داده خواهد شد. برای مثال اگر همین الان در قسمت جستجو وبسایت راکت عبارت «ماشین لامبورگینی» را جستجو کنید هیچ محتوایی روبرو نخواهید شد. دلایل کلی که می‌تواند باعث این کد وضعیت شود عبارت است از:

  • محتوای درخواستی شما قبلا از وبسایت حذف شده است
  • آدرسی که به دنبال آن هستید تغییر کرده و یا عملیات ریدایرکت به درستی انجام نمی‌شود
  • کلاینت به دنبال آدرسی کاملا اشتباه است
  • دامنه مربوطه کلا وجود ندارد

برای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:

  • صفحه را رفرش کنید
  • آدرس را بررسی کرده و دوباره بنویسید
  • در موتورهای جستجوگر دقیق مانند گوگل عنوان مورد نظرتان را سرچ کنید
  • اگر از وجود چنین محتوایی مطمئن هستید به کاوش‌تان ادامه بدهید

خطای داخلی سرور یا Internal Server Error با کد وضعیت 500

زمانی که یک سرور نتواند موقعیتی که در آن قرار گرفته را مدیریت کند و به درستی برنامه ریزی نشده باشد با این مشکل روبرو می‌شود. دلایل متعددی می‌تواند باعث این موضوع شود که در زیر به مهمترین آن‌ها اشاره خواهد شد:

  • افزایش حجم فایل‌ها در وبسایت
  • افزایش حجم حافظه اصلی یا Memory و یا نسخه اشتباه زبان برنامه نویسی (در PHP این اتفاق معمولا زیاد اتفاق می‌افتد)
  • خطای مجوز دسترسی برای فایل‌ها و دایرکتوری‌ها
  • اشتباه سینتکسی  یا هر گونه خرابی دیگر در فایل .htaccess
  • اگر از وردپرس استفاده می‌کنید احتمالا یک پوسته یا پلاگین شما باعث مشکل شده است
  • مشکلات موقت کانکشن سرور

برای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:

  • بروزرسانی صفحه مرورگر
  • پاک کردن کش و کوکی مرورگر
  • تنظیم مجدد دسترسی‌ها و برگشت آن‌ها به حالت پیشفرض
  • بروزرسانی نسخه PHP
  • برگشت به آخرین نسخه فایل پشتیبانی
  • رفع عیب کردن فایل .htaccess
  • در وردپرس غیر فعال کردن آخرین پلاگین نصب شده

گذرگاه خراب یا Bad Gateway با کد وضعیت 502

کد وضعیت ۵۰۲ زمانی اتفاق می‌افتد که  سرور پاسخ غیر معتبری را از یک سرور دیگر دریافت می‌کند.  این حالت زمانی اتفاق می‌افتد که سرور نقشی شبیه به پروکسی یا همان Gateway را ایفا می‌کند. در زیر می‌توانید چند دلیل که باعث این مشکل می‌شود را مشاهده کنید:

  • ادغام و یا مهاجرت سرور
  • ترافیک بالا در سرور
  • سرور در دست تعمیر باشد
  • فایروال از انتقال اطلاعات جلوگیری می‌کند

برای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:

  • سعی کنید با یک مرورگر دیگر به وبسایت متصل شوید
  • DNS Server را تغییر دهید
  • کل سرور را ریستارت کنید

در دسترس نبودن سرویس یا Service Unavailable با کد وضعیت 503

کد وضعیت 503 زمانی دریافت می‌شود که سرور به صورت موقت نمی‌تواند یک درخواست را پردازش کند. دلیل این موضوع نیز این است که سرور در حال تعمیر شدن است. دو دلیل زیر از جمله دلایل اصلی این کد وضعیت هستند.

  • تعمیرات و نگهداری سرور  یا Server maintenance
  • سر ریز کردن سرور یا Server Overload

برای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:

  • سرور را ریستارت کنید
  • زمان بندی‌های مربوط به نگهداری و تعمیر سرور را بررسی کنید
  • بروزرسانی خودکار سرور را غیر فعال کنید
  • پیکربندی فایروال را بررسی کنید
  • به Logهای موجود نگاه بیاندازید
  • از نبود خطا در کدهای مربوط به سمت سرور مطمئن شوید

تایم آوت گذرگاه یا Gateway Timeout با کد وضعیت 504

زمانی که یک سرور به عنوان پروکسی عمل کرده و منتظر دریافت پاسخ از یک سرور دیگر است یک مدت زمان برای دریافت این پاسخ در نظر گرفته می‌شود، اگر سرور مبدا در بازه زمانی تعریف شده نتواند پاسخی را دریافت بکند با کد وضعیت 504 مواجه می‌شود. از جمله دلایلی که می‌تواند باعث این وضعیت شود می‌توان به موارد زیر اشاره کرد:

  • مشکلات ارتباطی
  • تغییرات سرور (تغییر آی‌پی آدرس‌ها)
  • تغییرات در DNS
  • اشتباه در پیکربندی فایروال
  • خطا در اتصال به شبکه
  • بازه زمانی تعریف شده از میزان زمان مورد نیاز برای پردازش کمتر است

برای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:

  • ارتباط سرور با شبکه جهانی را بررسی کنید
  • تمام تغییرات DNS را بررسی کنید
  • پیکربندی فایروال را بررسی کنید
  • بازه زمانی Gateway timeout را افزایش دهید
  • به Logها نگاه بیاندازید و کدهای سمت سرور را بررسی کنید

در پایان

در این مطلب از وبسایت راکت سعی کردیم تا شما را با مهمترین کدهای وضعیتی HTTP آشنا کنیم. امیدواریم که این مقاله برای‌تان مفید بوده باشد. در صورت داشتن هرگونه سوالی در ارتباط با این موضوع می‌توانید از طریق قسمت دیدگاه آن را با ما به اشتراک بگذارید.

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
5 از 4 رای

/@arastoo
ارسطو عباسی
برنامه‌نویس و توسعه‌دهنده نرم‌افزار - نویسنده و کپی‌رایتر - #پایتون - #جنگو - #لینوکس

برنامه‌نویس تمام وقت پایتون و مدیر بخش تولید محتوا وبسایت راکت - وبلاگ شخصی: https://arastoo.dev

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

ارسطو عباسی

برنامه‌نویس و توسعه‌دهنده نرم‌افزار - نویسنده و کپی‌رایتر - #پایتون - #جنگو - #لینوکس