شرحی بر کدهای وضعیت خطای HTTP

مقدمه ای بر خطاهای وب پیج

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

انواع خطای HTTP و کدهای تعیین وضعیت

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

199-100 : وضعیت اطلاعاتی
299-200 : وضعیت موفقیت ارتباط
399-300 : وضعیت ریدیرکت کردن
499-400 : خطاهای سمت کلاینت
599-500 : خطاهای سمت سرور

از این همه کد خطا و کد وضعیت (status code) ، تنها تعداد معدودی رایج هستند و زیاد به چشم می خورند. بعضی از کدهای مربوط به هر خطا معمولا در صفحه وب به عنوان خروجی شکست درخواست اطلاعات نمایش می یابد، در حالی که تعدادی از کدهای خطا برای کاربران نمایش داده نمی شود.

1- کد وضعیت HTTP 200 "OK"

در پردازش درخواست کلاینت و نمایش اطلاعات درخواستی مشکل پیش آمده

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

2- کد خطای HTTP Error 404 "Not Found"

وب سرور نتواند صفحه، فایل یا هر منبع درخواستی دیگر از وب سرور را پیدا کند

این کد خطا زمانی صادر می شود که وب سرور نتواند صفحه، فایل یا هر منبع درخواستی دیگر از وب سرور را پیدا کند. خطای HTTP 404 نشانگر آن است که اتصال شبکه بین مددجو و سرور با موفقیت برقرار شده است، اما اطلاعات درخواستی یافت نشده است. این خطا بیشتر زمانی رخ می دهد که کاربر به طور دستی آدرس اینترنت (URI) غلط در آدرس بار مرورگر وارد کند و یا مدیر وب سرور فایل را بدون هدایت کاربر به آدرس جدید و ریدیرکت مکان معتبر جدید حذف کرده باشد. برای رفع این خطا کاربر بایستی URL وارد شده در آدرس بار را تصحیح کند. مدیر سایت بایستی برای فایل ها و اطلاعات حذف یا جابجا شده آدرس لینک ریدیرکت منحصر تعریف کند.

3- خطای HTTP Error 500 "Internal Server Error"

از قبیل زمانی که حافظه یا فضای دیسک در دسترس کم است

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

4- خطای HTTP Error 503 "Service Unavailable"

نمی تواند درخواست وارده کلاینت را پردازش کند

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

5- خطای HTTP 301 "Moved Permanently"

آدرس مشخص شده توسط کلاینت برای همیشه به مکان دیگری از طریق ریدیرکت منتقل شده باشد

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

6- خطای HTTP 302 "Found" or "Moved Temporarily"

این کد وضعیت همانند کد 301 نشانگر ریدیرکت HTTP است، اما HTTP 302 برای مواردی طراحی شده است که منبع مورد نظر بطور موقت جابجا شده است، نه برای همیشه. مدیر سرور بایستی از کد HTTP 302 فقط در طی دوره های کوتاه و موقت تعمیر و نگهداری استفاده کند. مرورگرهای وب به طور خودکار از ریدیرکت 302 تبعیت می کنند، درست همانند کد 301. در HTTP نسخه 1.1 یک کد جدید 307 اضافه شده است که نشانگر ریدیرکت موقتی است.

7- خطای HTTP 400 "Bad Request"

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

8- خطای HTTP 401 "Unauthorized"

وب سرور از سرور منبعی را درخواست کند که اجازه و تاییدیه استفاده و دسترسی به آن را نداشته باشد

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

9- خطای HTTP 100 "Continue"

خطای HTTP 100 از نسخه 1.1 به بعد اضافه شد و برای استفاده بهینه از منابع شبکه مثل پهنای باند تخصیص یافت. بدین صورت که به سرور فرصتی داده می شود تا آمادگی خود برای پذیرش درخواست های زیاد را تایید کند. پروتکل ادامه به کلاینت HTTP 1.1 این امکان را می دهد که پیام کوچک با پیکربندی اختصاصی ارسال کرده و از سرور بخواهد که با کد 100 پاسخ دهد، سپس منتظر پاسخ بماند، قبل از اینکه حجم بالایی از درخواست را ارسال کند. در رابطه کلاینت سرور نسخه HTTP 1.0 این امکان در دسترس نبود و کلاینت نمی توانست قبل از ارسال درخواست (بخصوص حجم بالای درخواست)، از سرور در مورد آمادگی اش برای پذیرش درخواست ها سئوال کند.

10- خطای HTTP 204 "No Content"

سرور به درخواست مددجو پاسخ معتبری ارسال می کند که تنها حاوی اطلاعات هدر است (برای نمونه، حاوی هیچ بدنه پیغامی نیست). مددجویان وب می توانند از کد HTTP 204 برای پردازش پاسخ سرور به طور کارآمدتر استفاده کنند، برای نمونه از ریفرش غیرضروری صفحات اجتناب شود.

11- خطای HTTP 502 "Bad Gateway"

وجود مشکل شبکه بین کلاینت و سرور موجب این خطای HTTP می شود. ممکن است در اثر خطای پیکربندی و تنظیمات دیوار آتش شبکه (فایروال)، روتر یا سایر تجهیزات گیت شبکه رخ دهد.