تک نوشته

معرفی کدهای خطا رایج HTTP

معرفی کدهای خطا رایج HTTP

۹۵/۱۰/۰۲, نوشته شده توسط بدون دیدگاه

تمرکز اصلی این مقاله برروی شناسایی رایج ترین کد خطا HTTP و همچنین اعلام راهکارهای مرتبط جهت رفع آنها می باشد.

دقت داشته باشید که شرایط و موقعیت های گوناگونی هست که باعث می شود پاسخ وب سرور به یک درخواست با کد خطای خاصی نمایش داده شود ولی در اینجا تنها محتمل ترین دلایل در رابطه با کدهای خطا و راهکارهای مرتبط پوشش داده خواهد شد.

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

  • ۱xx : اطلاعات (Information)
  • ۲xx : موفقیت (Success)
  • ۳xx : ارجاع (Redirection)
  • ۴xx : خطای سمت کاربر (Client Error)
  • ۵xx : خطای سمت سرور (Server Error)

 

بررسی خطای سمت کاربر و سرور :

خطاهای سمت کاربر یا کدهای وضعیت از ۴۰۰ تا ۴۹۹، نتیجه ی درخواست های HTTP هستند که توسط نرم افزارهای HTTP سمت کاربر (مانند مرورگر وب) ارسال می شوند. گرچه این دست از خطاها به صورت معمول مربوط به طرف کاربر می باشند ولی آگاهی از اینکه کاربر با چه کد خطای مواجه شده است نیز به جهت امکان سنجی رفع آن از طریق ایجاد تغییرات در تنظیمات سرور، مفید واقع خواهد شد.

خطای های سمت سرور یا کدهای وضعیت ۵۰۰ تا ۵۹۹ نیز زمانی نمایش داده می شوند که مشکلی در تنظیمات وب سرور وجود داشته و یا وب سرور توانایی انجام درخواست مربوطه را ندارد.

 

راهکارهای کلی رفع مشکلات مربوطه :

  • زمانیکه از مرورگر به جهت امتحان وب سرور استفاده می کنید، به خاطر داشته باشید که حتما بعداز ایجاد هرگونه تغییر در سرور به جهت مشاهده نتیجه، مرورگر خود را رفرش نمایید.
  • بخش لاگ موجود در سرور خود را برای بدست آوردن اطلاعات بیشتر در رابطه با نحوه مواجه شدن سرور با درخواست های مربوطه بررسی نمایید. به طور مثال وب سرورهایی مانند Apache و Nginx لاگ فایل های مرتبط را در دو فایل به نام های log و error.log ایجاد می نمایند لذا با بررسی کامل این دو فایل اطلاعات جامع و مناسبی کسب خواهد شد.
  • به خاطر داشته باشید که تعاریف کدهای وضعیت HTTP بخشی از استانداردی هستند که توسط نرم افزارهای مرتبط سمت سرور پیاده سازی شده اند. بنابراین کدهای وضعیتی که به نمایش در می آیند به چگونگی برخورد (مواجهه) نرم افزار مرتبط در سمت سرور با خطای مربوطه بستگی خواهد داشت.

حال با توجه به اطلاعات ارائه شده از کدهای وضعیت HTTP، می توانیم نسبت به اعلام خطاهای متداول در این زمینه بپردازیم.

 

۴۰۰ Bad Request :

این کد خطا نشان دهنده این مورد است که درخواست HTTP ارسال شده به سرور دارای syntax صحیحی نمی باشد.

در ذیل به برخی از شرایطی که ممکن است باعث بروز این خطا شود اشاره می شود :

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

 

۴۰۱ Unauthorized :

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

 

۴۰۳ Forbidden :

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

عدم ارائه دسترسی صحیح به فایل : باید بررسی کرد که worker process این وب سایت در سرور به چه کاربری اختصاص داده است و سپس دسترسی لازم (خواندن، نوشتن و یا هردو) به فایل و یا فلدر مربوطه به کاربری مرتبط ارائه گردد.

وجود فایل .htaccess با تنظیمات نادرست : از فایل .htaccess می توان به جهت ایجاد محدودیت های دسترسی به منابع خاص استفاده نمود لذا بررسی وجود این فایل و اطمینان از عدم ایجاد محدودیت دسترسی نادرست در رفع این مشکل مفید می باشد.

عدم وجود صفحه پیش فرض : در صورتیکه صفحه ی پیش فرض وجود نداشته یا تعریف نشده باشد و قابلیت Directory Browsing نیز فعال نباشد، وب سرور خطای مربوطه را نمایش خواهد داد لذا در این شرایط برای رفع این مشکل می باید صفحه پیش فرض تعریف نموده و یا قابلیت Directory Browsing فعال گردد.

 

۴۰۴ Not Found :

در این مورد کاربر قادر به برقرار ارتباط با سرور می باشد ولی صفحه مورد درخواست در مسیر مربوطه در سرور موجود نمی باشد. شرایط متفاوتی برای نمایش این خطا وجود دارد که در مواجهه با آن می توان موارد ذیل را دنبال نمود :

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

 

۵۰۰ Internal Server Error :

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


۵۰۲ Bad Gateway :

به این معنی است که سرور مربوطه یک Gateway یا Proxy سرور است که با توجه به درخواستی که برای آن ارسال شده و تنظیمات ست شده برروی آن، امکان دریافت پاسخ معتبر از سرور پشتی (سرور backend – که مسئول اصلی پاسخگویی به درخواست ارسال شده است) را ندارد. در این شرایط می توان موارد ذیل را بررسی نمود :

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

 

۵۰۳ Service Unavailable :

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

 

۵۰۴ Gateway Timeout :

به این معنی است که سرور مربوطه یک Gateway یا Proxy سرور است که درخواست مربوطه را (با توجه به تنظیمات انجام شده ) به سرور پشتی مورد نظر ارسال نموده ولی سرور backend در بیشنه زمانی تعیین شده پاسخی نداده است. این مشکل معمولاً در یکی از شرایط ذیل به وقوع می پیوندد :

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

مهر سرور ارائه ارائه دهنده خدمات میزبانی نوین با بالاترین کیفیت و ارزان ترین قیمت که فعالیت خود را در سال 1395 آغاز نموده و همچنان تا به امروز به لطف مشتریان خود و جلب رضایت آنها به فعالیت خود ادامه می دهد!

دیدگاه خود را ارسال کنید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی نشانه گذاری شده اند *

مهر سرور

قبت دامنه

میزبانی وبسایت

سرور ممجازی

طراحی وبسایت
گواهینامه ssl