هر وب سرور درخواست هایی را که دریافت می کند را با یک کد وضعیت خاص پاسخ دهی می نماید. هر کد وضعیت HTTP از 3 عدد تشکیل شده و به صورت کلی به 5 گروه مختلف تقسیم می شود.
اولین رقم آنها نمایان گر گروه و یا کلاس آنها می باشد. در ذیل کلاس های مربوطه (با توجه به رقم ابتدایی آنها) قابل مشاهده هستند :

  • 1xx : اطلاعات (Information)
  • 2xx: موفقیت (Success)
  • 3xx: ارجاع (Redirection)
  • 4xx: خطای سمت کاربر (Client Error)
  • 5xx: خطای سمت سرور (Server Error)

نکته : در این مقاله سعی بر توضیح متداول ترین کدهای خطای وضعیت وب سرور و ارائه محتمل ترین دلایل نمایش آنها شده است لذا توجه داشته باشید که به صورت کلی کدهای وضعیت بیشتری نسبت به این موارد وجود داشته و همچنین برای هریک از آنها نیز می تواند دلایل دیگری وجود داشته باشد.

معرفی کلی کدهای وضعیت متداول :

1- سمت کاربر :
کدهای وضعیت 400 تا 499، در نتیجه درخواست های HTTP ی که توسط نرم افزارهای سمت کاربر (مانند مرورگر وب) ارسال شده اند نمایش داده می شود. آگاهی از کد وضعیتی که کاربر در هنگام مرور با آن مواجه می شود می تواند به جهت بررسی امکان رفع آن از طریق پیاده سازی تنظیمات لازم در سرور مفید واقع گردد ولی به صورت کلی این خطاها مرتبط با نرم افزارهای سمت کاربر می باشد.

2- سمت سرور :
شامل کدهای وضعیت 500 تا 599 می باشند و این کدها در زمان وجود مشکل در تنظیمات وب سرو و یا عدم توانایی وب سرور در اجرای درخواست(های) مربوطه نمایش داده خواهند شد.

توضیح کلی :

  • تعاریف مرتبط با کدهای وضعیت HTTP بخشی از استانداردی هستند که توسط نرم افزارهای سمت سرور پیاده سازی شده اند لذا کدهای وضعیتی که به نمایش در می آیند به چگونگی مواجهه نرم افزار مرتبط در سمت سرور با خطای مربوطه بستگی خواهد داشت.
  • به یاد داشته باشید که برای مشاهده نتیجه صحیح حتماً بعداز ایجاد هرگونه تغییر در وب سرور ، مرورگر خود را refresh نمایید.
  • بررسی لاگ فایل های وب سرور یکی از بهترین راهکارها برای بدست آوردن اطلاعات بیشتر در رابطه با مشکل موجود در وب سرور می باشد. در نظر داشته باشید که برخی وب سرورها 2 نوع لاگ فایل ایجاد می کنند، یکی برای خطاها و دیگری برای دسترسی هایی که انجام شده است، لذا در این شرایط حتماً هر دو لاگ فایل را بررسی نمایید.


هم اکنون با توجه به توضیحات اعلام شده می توان نسبت به تشریح کدهای خطای متداول اقدام نمود :

400 Bad Request :
با نمایش این کد مشخص می گردد که syntax درخواست HTTP ارسال شده به سرور صحیحی نمی باشد.
برخی دلایلی که ممکن است باعث بروز این خطا شود در ذیل ارائه می گردد :

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


401 Unauthorized :
این خطا زمانی رخ می دهد که کاربری بدون آگاهی از اطلاعات لاگین (نام کاربری و رمز عبور مربوطه) بخواهد به منبع یا صفحه ای که توسط HTTP Authentication محافظت شده دسترسی داشته باشد.

403 Forbidden :
زمانیکه درخواست ارسالی معتبر و بدون مشکل باشد (مثلا syntax درخواست صحیح است) ولی کاربر دسترسی های لازم به جهت استفاده از منابع مربوطه را نداشته باشد، سرور درخواست مربوطه را رد کرده و این کد وضعیت را نمایش می دهد.

برخی دلایل محتمل که باعث بروز این کد وضعیت می شود به شرح ذیل می باشد :
عدم ارائه دسترسی صحیح به فایل : بررسی و آگاهی از نام کاربری که به worker process وب سایت مربوطه اختصاص داده شده و سپس اطمینان از ارائه مجوزهای لازم (خواندن، نوشتن و یا هردو) به کاربری مذکور برای دسترسی به فایل و یا فلدر مربوطه
وجود فایل .htaccess با تنظیمات نادرست : اطمینان از عدم وجود محدودیت دسترسی نادرست در فایل .htaccess (از این فایل می توان به جهت ایجاد محدودیت های دسترسی به منابع خاص استفاده کرد)
عدم وجود صفحه پیش فرض :در صورتیکه هیچ صفحه پیش فرضی تعریف و یا وجود نداشته باشد و همچنین قابلیت Directory Browsing نیز فعال نشده باشد، این خطا نمایش داده خواهد شد. برای رفع این مشکل می باید یک صفحه پیش فرض تعریف نموده و یا قابلیت Directory Browsing را فعال نمود.

404 Not Found :
زمانیکه صفحه مورد درخواست کاربر در مسیر مربوطه در سرور وجود نداشته باشد، این خطا نمایش داده خواهد شد.
برخی دلایل محتمل که باعث بروز این کد وضعیت می شود به شرح ذیل می باشد :

  • ممکن است آدرس لینک درج شده در آیکونی که کاربر برروی آن کلیک کرده است دارای خطای تایپی باشد.
  • احتمال دارد کاربر آدرس URL مورد نظر خود را به اشتباه وارد کرده باشد.
  • امکان دارد دسترسی Read و Execute به کاربری مرتبط با worker process سایت مورد نظر داده نشده باشد.
  • ممکن است دایرکتوری پیش فرض سایت مورد نظر در سرور به درستی تنظیم نشده باشد.
  • در صورتیکه قبلا صفحه ی درخواستی در سرور موجود بوده و هم اکنون جابجا و یا حذف شده باشد و یا در مسیر صحیحی در سرور قرار نگرفته باشد، بروز این خطا محتمل خواهد بود.
  • در صورتیکه آدرس صفحه یا منبع مربوطه شامل لینک نمادین (symbolic link) می باشد باید تنظیمات لازم در وب سرور جهت پشتیبانی از آن صورت پذیرد. در غیر اینصورت امکان بروز این خطا محتمل می باشد.
    (به طور مثال در صورتیکه وب سرور از پسوند iso پشتیبانی ننماید مشخصاً لینک http://www.tajanweb.com/win.iso نیز قابل دستیابی نیست)


500 Internal Server Error
به این معنی که سرور در انجام درخواست به دلیلی نامشخص با شکست مواجه می شود. مهمترین علت بروز این خطا وجود تنظیمات نادرست (مثلاً فایل htaccess استفاده شده دارای محتوای صحیحی نباشد) و یا عدم نصب پکیجی خاص (به طور مثال عدم نصب صحیح و کامل PHP و در عین حال استفاده از صفحات PHP) در سرور می باشد.

502 Bad Gateway
زمانیکه سرور مورد نظر نقش یک Gateway یا *****سرور را داشته ولی با توجه به تنظیمات پیاده سازی شده برروی آن و یا نوع درخواستی که برای آن ارسال شده، توانایی دریافت پاسخ معتبر از سرور پشتی ( backend Server - که مسئول اصلی پاسخگویی به درخواست مبداء است) را نداشته باشد، این خطا نمایش داده خواهد شد.
در این شرایط می توان موارد محتملی که در زیر آمده است را بررسی نمود :

  • اطمینان از عدم وجود مشکل در backend Server
  • شاید پراکسی سرور مورد نظر به دلیل تنظیمات نادرست قادر به ارجاع درخواست به سرور پشتی نمی باشد.
  • ممکن است شبکه بین سرور پراکسی و سرور پشتی به درستی تنظیم نشده و یا مشکلی برای آن بوجود آمده است و یا پورت های مورد نظر در سرورها باز نمی باشند.
  • در صورتیکه قرار است وب اپلیکیشن مربوطه برروی سوکتی خاص استفاده شود، می باید تنظیمات هر دو سرور را برای امکان برقراری ارتباط صحیح بررسی و از وجود پرمیشن های صحیح اطمینان حاصل کنیم.


503 Service Unavailable
زمانیکه سرور دارای بار زیادی بوده (به اصطلاح overload شده) و یا در حال تعمیر (maintenance) می باشد این کد وضعیت نمایش داده می شود. در صورتیکه از عدم درحال تعمیر بودن سرور اطمینان دارید پس دلیل بروز این خطا کمبود میزان منابع CPU و یا RAMو یا عدم ارائه مجوز استفاده بیشتر از process و threads ها به کاربران در سرور به جهت انجام و پیاده سازی پروسه های درخواستی می باشد.

504 Gateway Timeout
زمانی با این خظا مواجه می شوید که سرور مورد نظر نقش یک Gateway یا ***** سرور را داشته و با توجه به تنظیمات پیاده سازی شده قادر به ارسال درخواست به سرور پشتی مورد نظر بوده ولی سرور backend در بیشنه زمانی تعیین شده پاسخی ارائه ننماید.
در این شرایط می توان موارد محتملی که در زیر آمده است را بررسی نمود :

  • ممکن است ارتباط شبکه بین دو سرور ضعیف و یا کند باشد.
  • سرور پشتی به دلیل عمکرد پایین ویا شلوغی زیاد خیلی کند شده است.
  • زمان timeout تنظیم شده در سرور پشتی کوتاه است.


منبع :