لیست کامل کدهای خطا و درخواست وضعیت HTTP
شاید شما هم پیش از این با کدهای وضعیت پاسخ و کدهای خطا HTTP روبرو شده باشید؛ اما ندانید که منظور از این کدها و خطاها چیست؟ از این رو ما در این مطلب سعی کرده ایم تا به صورت جامع و کامل، لیستی از تمامی این کدها و خطاها را به شما معرفی کرده و بگوییم که هر کدام از آن ها، چه معنایی می دهند. کدهای وضعیت پاسخ HTTP نشان می دهند که آیا یک درخواست HTTP خاص با موفقیت تکمیل شده است یا خیر. این کدها و خطاها در یکی از 5 کلاس زیر دسته بندی می شوند:
- پاسخ های اطلاعاتی (Informational responses) (100-199)
- پاسخ های موفق (Successful responses) (200-299)
- پیام های تغییر مسیر (Redirection messages) (300-399)
- پاسخ های خطای مشتری (Client error responses) (400-499)
- پاسخ های خطای سرور (Server error responses) (500-599)
توجه داشته باشید که کدهای وضعیت فهرست شده در این مطلب توسط RFC 9110 تعریف شده هستند.
پاسخ های اطلاعاتی (Informational responses)
- 100: ادامه (Continue)
این پاسخ موقت در کد خطاهای HTTP نشان می دهد که مشتری باید درخواست را ادامه دهد یا اگر درخواست قبلاً تمام شده است، پاسخ را نادیده بگیرد.
- 101: پروتکل های سوئیچینگ (Switching Protocols)
این کد در پاسخ به درخواست ارتقاء هدر از سوی مشتری ارسال میشود و پروتکلی را که سرور به آن تغییر میدهد، نشان خواهد داد.
- 102: پردازش (Processing)
این کد نشان می دهد که سرور درخواست را دریافت کرده و در حال پردازش است، اما هنوز پاسخی در دسترس نیست.
- 103: نکات اولیه (Early Hints)
این کد وضعیت اساساً برای استفاده با لینک هدر در نظر گرفته شده است و به عامل کاربر اجازه می دهد تا زمانی که سرور پاسخی را آماده می کند، منابع را از قبل بارگذاری کند.
پاسخ های موفق (Successful responses)
- 201: ایجاد شد (Created)
درخواست با موفقیت انجام شده و در نتیجه یک منبع جدید ایجاد شده است. این معمولاً پاسخی است که پس از درخواستهای POST یا برخی از درخواستهای PUT ارسال می شود.
- 202: پذیرفته شده (Accepted)
این کد از کدهای خطا HTTP نشان می دهد که درخواست دریافت شده است اما هنوز به آن عمل نشده است. این کد را می توان غیرمتعهد دانست، زیرا هیچ راهی در HTTP برای ارسال پاسخ ناهمزمان که نشان دهنده نتیجه درخواست است، وجود ندارد. برای مواردی در نظر گرفته شده که فرآیند یا سرور دیگری درخواست را رسیدگی می کند و یا اینکه پردازش دسته ای صورت گرفته است.
- 203: اطلاعات غیر معتبر (Non-Authoritative Information)
این کد پاسخ به این معنی است که ابرداده برگشتی دقیقاً مشابه آنچه که در سرور اصلی موجود است، نیست؛ بلکه از یک نسخه محلی یا یک نسخه شخص ثالث جمع آوری شده است. این درخواست بیشتر برای تکنیک پشتیبان گیری آینه ای (mirrors) یا پشتیبان گیری از یک منبع دیگر استفاده می شود. به جز برای این مورد خاص، پاسخ 200 OK به این وضعیت ترجیح داده می شود.
- 204: بدون محتوا (No Content)
این کد از کدهای خطا HTTP نشان می دهد که هیچ محتوایی برای ارسال این درخواست وجود ندارد، اما هدرها می توانند مفید باشند. کاربر ممکن است هدرهای کش شده خود را برای این منبع با هدرهای جدید به روز کند.
- 205: بازنشانی محتوا (Reset Content)
به کاربر میگوید سندی را که این درخواست ارسال کرده است، بازنشانی کند.
- 206: محتوای جزئی (Partial Content)
این کد پاسخ زمانی استفاده می شود که Range هدر، از سمت مشتری برای درخواست تنها بخشی از یک منبع ارسال می شود.
- 207: چند وضعیت (Multi-Status (WebDAV))
اطلاعاتی را در مورد منابع متعدد، برای موقعیت هایی که ممکن است چندین کد وضعیت مناسب باشد، منتقل می کند.
- 208: قبلا گزارش شده است (Already Reported (WebDAV))
این کد از کدهای خطا HTTP در داخل یک عنصر پاسخ <dav:propstat> استفاده می شود تا از شمارش مکرر اعضای داخلی اتصالات چندگانه به یک مجموعه جلوگیری شود.
- IM 226: استفاده شده است (Used (HTTP Delta encoding))
سرور یک درخواست GET برای منبع را برآورده کرده است و پاسخ نمایشی خواهد بود از نتیجه یک یا چند دستکاری اعمال شده در نمونه فعلی.
پیام های تغییر مسیر (Redirection responses)
- 300: گزینه چندگانه (Multiple Choices)
ممکن است درخواست بیش از یک پاسخ داشته باشد و کاربر باید یکی از آنها را انتخاب کند. (هیچ روش استاندارد شده ای برای انتخاب یکی از پاسخ ها وجود ندارد، اما پیوندهای HTML اجازه می دهند تا کاربر بتواند انتخاب کند.)
- 301: به طور دائم منتقل شد (Moved Permanently)
در ادامه کدهای خطا HTTP به کد 301 می رسیم. این کد نشان می دهد که URL منبع درخواستی برای همیشه تغییر کرده و آدرس جدیدی در پاسخ داده شده است. ریدایرکت های از نوع 301، پر کاربردترین انواع ریدایرکت ها محسوب می شوند.
- 302: پیدا شد (Found)
این کد پاسخ به این معنی است که URL منبع درخواستی به طور موقت تغییر کرده است و این امکان وجود دارد که در آینده تغییرات بیشتری در URL ایجاد شود؛ بنابراین، همان URL باید توسط مشتری در درخواست های بعدی استفاده شود.
- 303: به دیگری رجوع شود (See Other)
سرور این پاسخ را ارسال می کند تا کاربر به مکان دیگری هدایت شود. بدین صورت کاربر منبع درخواستی را در یک URL دیگر با درخواست GET دریافت می کند.
- 304: اصلاح نشده است (Not Modified)
این کد برای اهداف کش استفاده می شود. کد 304 از کدهای خطا HTTP به کاربر می گوید که پاسخ تغییری داده نشده است، بنابراین کاربر می تواند از همان نسخه کش شده پاسخ قبلی استفاده کند. این کد برای جلوگیری از بارگیری مجدد صفحه و افزایش سرعت لودینگ سایت، بسیار کاربردی است.
- 305: از از Proxy Deprecated استفاده کنید (Use Proxy Deprecated)
در نسخه قبلی مشخصات HTTP تعریف شده است تا نشان دهد که پاسخ درخواستی باید توسط یک پروکسی قابل دسترسی باشد. این خطا معمولا به دلیل نگرانی های امنیتی در مورد پیکربندی داخلی پروکسی ها ظاهر می شود.
- 306: استفاده نشده (unused)
این کد پاسخ، دیگر استفاده نمی شود. فقط رزرو شده است. این کد پاسخ تنها در نسخه قبلی مشخصات HTTP/1.1 استفاده شده بود.
- 307: تغییر مسیر موقت (Temporary Redirect)
سرور این پاسخ را برای مشتری ارسال کرده تا او را هدایت کند. بدین صورت منبع درخواستی را در یک URL دیگر با همان روشی که در درخواست قبلی استفاده شده بود، دریافت می کند. این کد از کدهای خطا HTTP معنای کد پاسخ HTTP 302 Found را دارد، با این تفاوت که کاربر نباید روش HTTP استفاده شده را تغییر دهد. اگر در درخواست اول از متود POST استفاده شده باشد، در درخواست دوم نیز باید از متود POST استفاده شود.
- 308: تغییر مسیر دائمی (Permanent Redirect)
این بدان معنی است که منبع اکنون به طور دائم در یک URL دیگر قرار دارد که توسط هدر Location: HTTP Response مشخص شده است.
پاسخ های خطای کاربر (Client responses)
- 400: درخواست بد (Bad Request)
سرور نمیتواند یا نمی خواهد درخواست را پردازش کند. همچنین این احتمال وجود دارد که سرور به دلیل چیزی که تصور میشود یک خطا از سوی مشتری است، درخواست را انجام نمی دهد.
- 401: غیر مجاز (Unauthorized)
از نظر معنایی این پاسخ به معنای “غیر تایید شده” است. یعنی مشتری باید خود را احراز هویت کند تا پاسخ درخواستی را دریافت کند. در واقع زمانی که کاربر قصد ورود به یک صفحه را داشته باشد که برای آن لازم است ابتدا لاگین شود، خطای 401 به او نمایش داده می شود.
- 402: پرداخت مورد نیاز آزمایشی (Payment Required Experimental)
این کد پاسخ بیشتر برای استفاده در آینده رزرو شده است. هدف اولیه از ایجاد این کد از کدهای خطا HTTP، استفاده از آن برای سیستم های پرداخت دیجیتال بود، اما این کد وضعیت به ندرت استفاده می شود و هیچ قرارداد استانداردی وجود ندارد.
- 403: ممنوع (Forbidden)
مشتری حق دسترسی به محتوا را ندارد. تفاوت خطای 403 با 401 در این است که در اینجا سرور هویت کاربر را می داند و به همین دلیل به او یادآوری می کند که بر اساس تعریف دسترسی هایی که در اختیار دارد، این کاربر اجازه دیدن این صفحه را ندارد.
در واقع برای رفع خطای 401 کاربر باید لاگین شود، اما برای رفع خطای 403، باید دسترسی های کاربر افزایش پیدا کند.
- 404: پیدا نشد (Not Found)
سرور نمی تواند منبع درخواستی را پیدا کند. خطای 404 معمولا هنگامی رخ می دهد که کاربر آدرس های URL اشتباهی را درخواست می کند و یا اینکه آدرس URL اخیرا حذف شده و دیگر در سرور وجود ندارد.
- 405: مجاز نیست (Method Not Allowed)
روش درخواست توسط سرور شناخته شده است اما توسط منبع هدف پشتیبانی نمی شود. به عنوان مثال، ممکن است کلاینت درخواست حذف داشته باشد، اما سرور این اجازه رو به او نمی دهد.
- 406: غیر قابل قبول (Not Acceptable)
این پاسخ زمانی ارسال می شود که وب سرور، محتوایی را که با معیارهای ارائه شده توسط کاربر مطابقت داشته باشد، پیدا نکند.
- 407: احراز هویت پروکسی (Proxy Authentication Required)
احراز هویت باید توسط یک پروکسی انجام شود.
- 408: درخواست مهلت زمانی (Request Timeout)
سرور می خواهد این اتصال استفاده نشده را خاموش کند. این نوع درخواست معمولا زمانی انجام می شود که یک درخواست HTTP مدت زمان زیادی است که بدون استفاده بوده و به همین دلیل و به جهت آزاد سازی منابع، توسط سیستم، خاموش می شود.
- 409: تعارض (Conflict)
این پاسخ از کدهای خطا HTTP زمانی ارسال می شود که درخواستی با وضعیت فعلی سرور در تضاد باشد.
- 410: از دست رفته (Gone)
این پاسخ زمانی ارسال میشود که محتوای درخواستی برای همیشه از سرور، بدون آدرس جدید، حذف شده باشد.
- 411: طول مورد نیاز است (Length Required)
سرور درخواست را رد کرد زیرا قسمت هدر Content-Length تعریف نشده است و سرور به آن نیاز دارد.
- 412: ناموفق (Precondition Failed)
کلاینت در هدرهای خود پیش شرط هایی را مشخص کرده است که سرور آنها را برآورده نمی کند.
- 413: محموله خیلی بزرگ (Payload Too Large)
موجودیت درخواست، بزرگتر از محدودیت های تعریف شده توسط سرور است.
- 414: URL خیلی طولانی (URI Too Long)
URL درخواست شده توسط مشتری طولانی تر از آن است که سرور مایل به تفسیر باشد.
- 415: نوع رسانه پشتیبانی نشده (Unsupported Media Type)
فرمت رسانه داده های درخواستی توسط سرور پشتیبانی نمی شود.
- 416: محدوده غیرقابل انجام (Range Not Satisfiable)
محدوده مشخص شده توسط فیلد هدر Range در درخواست قابل انجام نیست.
- 417: انتظار شکست خورد (Expectation Failed)
این کد از کدهای خطا HTTP به این معنی است که انتظاری که در قسمت هدر درخواست انتظار نشان داده شده است توسط سرور قابل برآورده نیست.
- 421: درخواست نادرست (Misdirected Request)
درخواست به سروری ارسال شده که قادر به ایجاد پاسخ نیست.
- 422:موجودیت غیرقابل پردازش (Unprocessable Entity (WebDAV))
درخواست به خوبی شکل گرفته بود اما به دلیل اشتباهات معنایی قابل پیگیری نبود.
- 423: قفل شده (Locked (WebDAV))
منبعی که در حال دسترسی است قفل شده است.
- 424: وابستگی ناموفق (Failed Dependency (WebDAV))
درخواست به دلیل عدم موفقیت درخواست قبلی انجام نشد.
- 425: تجربه خیلی زود (Too Early Experimental)
نشان می دهد که سرور مایل به ریسک پردازش درخواستی نیست که ممکن است دوباره پخش شود.
- 426: ارتقا مورد نیاز است (Upgrade Required)
سرور از انجام درخواست با استفاده از پروتکل فعلی امتناع می ورزد؛ اما ممکن است پس از ارتقاء کلاینت به پروتکل دیگری مایل به انجام این کار باشد.
- 428: پیش شرط لازم است (Precondition Required)
سرور مبدا نیاز به شرطی بودن درخواست دارد.
- 429: درخواست خیلی زیاد (Too Many Requests)
کاربر در مدت زمان معین درخواست های زیادی ارسال کرده است.
- 431: درخواست فیلدهای هدر بسیار بزرگ (Request Header Fields Too Large)
سرور تمایلی به پردازش درخواست ندارد زیرا فیلدهای هدر آن بسیار بزرگ است.
- 451: به دلایل قانونی در دسترس نیست (Unavailable For Legal Reasons)
کاربر منبعی را درخواست کرد که از نظر قانونی قابل ارائه نیست.
پاسخ های سرور (Server responses)
- 500: خطای سرور داخلی (Internal Server Error)
سرور با وضعیتی مواجه شده است که نمی داند چگونه باید آن را مدیریت کند.
- 501: اجرا نشد (Not Implemented)
این کد از کدهای خطا HTTP نشان می دهد که روش درخواست توسط سرور پشتیبانی نمی شود و قابل رسیدگی نیست.
- 502: دروازه بد (Bad Gateway)
این پاسخ خطا به این معنی است که سرور، در حالی که به عنوان یک دروازه برای دریافت پاسخ مورد نیاز برای رسیدگی به درخواست کار می کند، یک پاسخ نامعتبر دریافت می کند.
- 503: سرویس در دسترس نیست (Service Unavailable)
سرور برای رسیدگی به درخواست آماده نیست.
- 504: پایان زمان دروازه (Gateway Timeout)
این پاسخ خطا زمانی داده می شود که سرور به عنوان یک دروازه عمل می کند و نمی تواند به موقع پاسخی دریافت کند.
- 505: نسخه HTTP پشتیبانی نمی شود (HTTP Version Not Supported)
نسخه HTTP استفاده شده در درخواست توسط سرور پشتیبانی نمی شود.
- 506: مذاکره نوع (Variant Also Negotiates)
سرور یک خطای داخلی پیکربندی دارد و نمی تواند متغیر درخواستی را به درستی تشخیص دهد.
- 507: فضا ذخیره سازی ناکافی (Insufficient Storage (WebDAV))
سرور قادر به ذخیره نمایش مورد نیاز برای تکمیل موفقیت آمیز درخواست نیست.
- 508: لوپ شناسایی شد (Loop Detected (WebDAV))
سرور در حین پردازش درخواست، یک حلقه بی نهایت را شناسایی کرد.
- 510: تمدید نشده است (Not Extended)
پسوندهای بیشتری برای درخواست مورد نیاز است تا سرور بتواند آن را برآورده کند.
- 511: احراز هویت شبکه مورد نیاز است (Network Authentication Required)
نشان می دهد که کلاینت برای دسترسی به شبکه نیاز به احراز هویت دارد.