پرش به محتوای اصلی

مرجع کدهای وضعیت HTTP رایگان

مرجع قابل جستجو برای تمام کدهای وضعیت HTTP — معنای هر کد، زمان استفاده و دلایل رایج. از ۱۰۰ تا ۵۱۱.

پس از بارگذاری آفلاین کار می‌کند

61 کد وضعیت

100

ادامه

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

برای درخواست‌های دارای Expect: 100-continue استفاده می‌شود. سرور تایید می‌کند که آماده دریافت متن است قبل از اینکه مشتری آن را ارسال کند. به ندرت در برنامه‌های وب مدرن دیده می‌شود.

RFC 9110 ↗
101

تبدیل پروتکل‌ها

سرور پروتکل‌ها را مطابق درخواست مشتری تبدیل می‌کند.

اغلب برای ارتقاء WebSocket استفاده می‌شود — مشتری درخواست Upgrade: websocket می‌کند و سرور با 101 پاسخ می‌دهد تا پروتکل را تبدیل کند.

RFC 9110 ↗
102

در حال پردازش

سرور درخواست را دریافت کرده و در حال پردازش است، اما هیچ پاسخی هنوز در دسترس نیست.

پاسخ واسطه‌ای WebDAV برای جلوگیری از انقضای مهلت مشتری در حین عملیات طولانی. منسوخ شده — سرورهای مدرن نباید آن را ارسال کنند.

RFC 2518 ↗
103

راهنمایی‌های اولیه

سرآیندهای مقدماتی پیش از پاسخ نهایی ارسال شدند.

به سرورها امکان می‌دهد سرآیندهای Link (preload/preconnect) را بفرستند در حالی که پاسخ نهایی هنوز آماده می‌شود، تا مرورگرها بتوانند زودتر شروع به واکشی دارایی‌های حیاتی کنند.

RFC 8297 ↗
200

موفق (OK)

درخواست موفق شد.

پاسخ موفقیت استاندارد. معنی به روش HTTP بستگی دارد: GET → منبع برگردانده شد، POST/PUT → عمل تکمیل شد.

RFC 9110 ↗
201

ایجاد شد

منبع جدید با موفقیت ایجاد شد.

معمول پس از POST. پاسخ باید سرصحفه Location را شامل شود که به URL منبع جدید اشاره می‌کند.

RFC 9110 ↗
202

پذیرفته شد

درخواست برای پردازش پذیرفته شد، اما پردازش کامل نشده است.

برای عملیات غیرهم‌زمان — سرور کار را در صف قرار می‌دهد. مشتری باید نقطه پایانی وضعیت را بررسی کند یا بعداً بازگردد.

RFC 9110 ↗
203

اطلاعات غیرمرجع

پاسخ توسط پروکسی تبدیل‌کننده تعدیل شد.

درخواست موفق شد، اما واسطه‌ای (مانند کش یا پروکسی تبدیل‌کننده) بار را از سرور مبدا تغییر داد — برای مثال، تصاویر را دوباره فشرده‌سازی کرد. کمیاب در عمل.

RFC 9110 ↗
204

بدون محتوا

درخواست موفق شد اما هیچ متن پاسخی وجود ندارد.

اغلب برای عملیات DELETE یا به‌روزرسانی‌های PUT که نیازی به برگرداندن متن ندارند استفاده می‌شود. مشتری نباید از صفحه فعلی خارج شود.

RFC 9110 ↗
205

بازنشانی محتوا

درخواست موفق شد؛ مشتری باید نمایش سند را بازنشانی کند.

مانند 204، هیچ متنی برگردانده نمی‌شود — اما مشتری علاوه بر این گفته می‌شود تا فرم یا دید را بازنشانی کند که درخواست را تولید کرد (مثلاً فیلدهای فرم را برای ورود بعدی پاک کنید).

RFC 9110 ↗
206

محتوای جزئی

سرور فقط بخشی از منبع را ارسال کرد.

پاسخ به درخواست Range. پخش‌کننده‌های ویدیو و مدیران دانلود از آن برای ازسرگیری دانلودهای قطع‌شده یا پخش جریانی فایل‌های بزرگ استفاده می‌کنند.

RFC 9110 ↗
207

وضعیت متعدد

متن پاسخ شامل کدهای وضعیت متعدد برای عملیات متعدد است.

WebDAV: متن XML نتیجه چندین عملیات فرعی را به‌طور مستقل گزارش می‌کند — به عنوان مثال انتقال دسته‌ای جایی که برخی آیتم‌ها موفق و برخی ناموفق بودند.

RFC 4918 ↗
208

قبلاً گزارش‌شده

اعضای مجموعه قبلاً در قسمت قبلی پاسخ فهرست‌شده بودند.

WebDAV: در پاسخ‌های 207 Multi-Status استفاده می‌شود تا وقتی اتصال‌ها (bindings) حلقه ایجاد می‌کنند، اعضای همان مجموعه بارها فهرست نشوند.

RFC 5842 ↗
226

IM استفاده شد

پاسخ نتیجه دستکاری‌های نمونه‌ای بر روی منبع است.

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

RFC 3229 ↗
300

انتخاب‌های متعدد

نمایش‌های متعددی از منبع در دسترس هستند.

سرور گزینه‌های متعددی را ارائه می‌دهد (مثلاً فرمت‌ها یا زبان‌های مختلف) و مشتری باید یکی را انتخاب کند. به ندرت استفاده می‌شود، زیرا مذاکره محتوای خودکار معمولاً این را رفع می‌کند.

RFC 9110 ↗
301

به‌طور دائمی منتقل شد

منبع به‌طور دائمی به URL جدید منتقل شد.

برای تغییرات URL دائمی استفاده کنید — موتورهای جستجو نمایه خود را به‌روزرسانی می‌کنند. اقتدار SEO به URL جدید منتقل می‌شود.

RFC 9110 ↗
302

یافت شد (تغییر مسیر موقت)

منبع به‌طور موقت در URL متفاوتی است.

نشان می‌دهد که تغییر مسیر دائمی نیست. کش کردن کمتر تهاجمی از 301 است. برای چیزهایی مانند 'ورود لازم است، تغییر مسیر به /login' استفاده کنید.

RFC 9110 ↗
303

دیگر را ببینید

تغییر مسیر به URL متفاوت با GET.

بعد از ارسال POST — پاسخ می‌گوید 'POST شما کار کرد، این URL را برای نتیجه ببینید'. مرورگرها همیشه URL جدید را GET می‌کنند.

RFC 9110 ↗
304

تغییری نکرده است

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

پاسخ به درخواست مشروط (با سرآیندهای If-None-Match یا If-Modified-Since). پهنای باند را صرفه‌جویی می‌کند — هیچ بدنه‌ای برگردانده نمی‌شود.

RFC 9110 ↗
307

تغییر مسیر موقت

شبیه 302 اما روش HTTP اصلی را حفظ می‌کند.

اگر اصلی POST بود، تغییر مسیر نیز از POST استفاده می‌کند. جایگزین مدرن برای 302 زمانی که حفظ روش مهم است.

RFC 9110 ↗
308

تغییر مسیر دائمی

شبیه 301 اما روش HTTP اصلی را حفظ می‌کند.

جایگزین مدرن برای 301 زمانی که می‌خواهید درخواست‌های POST پس از تغییر مسیر به POST باقی بمانند.

RFC 9110 ↗
400

درخواست نادرست

سرور نتوانست درخواست را به دلیل نحو نادرست درک کند.

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

RFC 9110 ↗
401

غیرمجاز

اعتبارسنجی لازم است و ارائه نشده است.

کلاینت باید اطلاعات احراز هویت (سرآیند Authorization، کوکی، توکن) را ارسال کند. «Unauthorized» نام‌گذاری نادرستی است — در واقع یعنی «احراز هویت نشده».

RFC 9110 ↗
402

پرداخت لازم است

برای استفاده آینده رزرو شده — گاهی برای لایه‌های API پرداختی استفاده می‌شود.

در اصل برای پرداخت‌های دیجیتالی در نظر گرفته‌شده بود. استفاده مدرن: API‌ها گاهی 402 را بازمی‌گردانند زمانی که کاربر سهمیه پرداختی خود را فراتر رفته است.

RFC 9110 ↗
403

ممنوع

مشتری احراز هویت شده اما مجوز ندارد.

متفاوت از 401 — کاربر وارد شده است، اما حسابش برای این منبع مجوز ندارد. منطق نقش/مجوزها را بررسی کنید.

RFC 9110 ↗
404

یافت نشد

منبع درخواست‌شده وجود ندارد.

یا URL اشتباه است، منبع حذف شده یا هرگز وجود نداشت. سرورها گاهی 404 را بازمی‌گردانند تا پنهان کنند که 403 دقیق‌تر خواهد بود.

RFC 9110 ↗
405

روش مجاز نیست

روش HTTP استفاده‌شده برای این منبع مجاز نیست.

برای مثال، درخواست GET به نقطه‌پایانی که فقط POST را می‌پذیرد. پاسخ باید سرآیند Allow را شامل شود که روش‌های معتبر را فهرست می‌کند.

RFC 9110 ↗
406

قابل قبول نیست

هیچ نمایشی با سرآیندهای Accept کلاینت مطابقت ندارد.

کلاینت نوع محتوا، زبان یا رمزگذاری‌ای را درخواست کرده است (از طریق Accept، Accept-Language، Accept-Encoding) که سرور نمی‌تواند برآورده کند. بسیاری از سرورها از مذاکره دقیق صرف‌نظر می‌کنند و به جای آن پاسخ پیش‌فرضی برمی‌گردانند.

RFC 9110 ↗
407

احراز هویت پروکسی لازم است

کلاینت باید ابتدا خود را با پروکسی احراز هویت کند.

شبیه 401، اما توسط پروکسی صادر می‌شود: کلاینت باید اعتبارنامه Proxy-Authorization را ارسال کند. در شبکه‌های سازمانی با پروکسی‌های احراز هویت دیده می‌شود.

RFC 9110 ↗
408

زمان درخواست به پایان رسید

مهلت انتظار سرور برای دریافت درخواست تمام شد.

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

RFC 9110 ↗
409

تعارض

درخواست با وضعیت فعلی منبع در تضاد است.

معمولاً برای تضادهای ویرایش همزمان یا ایجاد منابع تکراری بازگردانده می‌شود (مثلاً ایجاد کاربری با ایمیلی که قبلاً وجود دارد).

RFC 9110 ↗
410

از دسترس خارج شده

منبع حذف شده و دیگر بازنخواهد گشت.

قویتر از 404 — سرور به طور صریح می‌داند منبع قبلاً وجود داشته اما به طور دائمی حذف شده است. موتورهای جستجو از شاخص خارج خواهند کرد.

RFC 9110 ↗
411

طول الزامی است

سرور به سرآیند Content-Length نیاز دارد.

درخواست رد شد زیرا سرآیند Content-Length نداشت و سرور بدنه‌هایی با اندازه نامعلوم را نمی‌پذیرد. سرآیند را اضافه کنید و دوباره تلاش کنید.

RFC 9110 ↗
412

پیش‌شرط ناموفق

شرطی در سرآیندهای درخواست برآورده نشده است.

وقتی سرآیندهای شرطی مانند If-Match یا If-Unmodified-Since ناموفق باشند برگردانده می‌شود — معمولاً قفل خوش‌بینانه: کس دیگری منبع را از زمان نسخه شما تغییر داده است. دوباره واکشی کنید و تلاش کنید.

RFC 9110 ↗
413

حجم محموله بیش از حد

متن درخواست از حد اندازه سرور فراتر است.

برای بارگذاری فایل‌های بزرگ رایج است. تنظیمات سرور (nginx، apache) حداکثر اندازه بدنه را تعیین می‌کند. تنظیمات سرور را بررسی کنید.

RFC 9110 ↗
414

URI بیش از حد طولانی

URL درخواست از حد طول سرور فراتر است.

معمولاً ناشی از رشته‌های پرس‌وجوی بسیار طولانی است (مثلاً رمزگذاری داده‌ها در GET). به بدنه POST روی بیاورید یا اگر کنترل سرور را دارید حد آن را افزایش دهید.

RFC 9110 ↗
415

نوع رسانه پشتیبانی نمی‌شود

سرور نمی‌تواند Content-Type ارسال‌شده را مدیریت کند.

مثلاً ارسال application/xml به سروری که فقط application/json می‌پذیرد. سرآیند Content-Type را درست تنظیم کنید.

RFC 9110 ↗
416

محدوده قابل تأمین نیست

محدوده بایت درخواست‌شده خارج از سایز منبع است.

سرآیند Range بخشی را درخواست می‌کند که فایل ندارد — مثلاً ادامه دانلود از بعد از انتهای فایل. پاسخ باید شامل Content-Range با اندازه واقعی باشد.

RFC 9110 ↗
417

انتظار برآورده نشد

سرور نمی‌تواند الزامات سرآیند Expect را برآورده کند.

زمانی ارسال می‌شود که سرور Expect: 100-continue را پشتیبانی نکند. برخی کلاینت‌ها به‌طور پیش‌فرض این سرآیند را در POSTهای بزرگ ارسال می‌کنند؛ غیرفعال کردن آن معمولاً خطا را حل می‌کند.

RFC 9110 ↗
418

من یک قوری هستم

سرور از دم کردن قهوه امتناع می‌کند زیرا یک قوری است.

یک شوخی اول آوریل از سال 1998 (RFC 2324). برخی APIهای واقعی از آن برای شوخی یا علامت‌گذاری نقاط پایانی منسوخ استفاده می‌کنند. برای محیط عملیاتی مناسب نیست.

RFC 2324 ↗
421

درخواست اشتباه هدایت شده

درخواست به سروری ارسال شد که نمی‌تواند پاسخی برای آن تولید کند.

معمول با استفاده مجدد اتصال HTTP/2: درخواست به سروری رسید که برای نام میزبان هدف پیکربندی نشده است. کلاینت باید در اتصال جدید دوباره تلاش کند.

RFC 9110 ↗
422

محتوای غیرقابل پردازش

درخواست از نظر نحوی معتبر بود ولی از نظر معنایی نادرست است.

مثلاً JSON به درستی تجزیه شده ولی قسمت اجباری گم است یا مقدار قسمت خارج از محدوده است. معمول در پاسخ‌های اعتبارسنجی API REST.

RFC 9110 ↗
423

قفل شده

منبع قفل است.

WebDAV: منبع مبدأ یا مقصد توسط کلاینت دیگری قفل شده است، بنابراین عملیات نمی‌تواند انجام شود. منتظر رفع قفل باشید یا آن را با توکن مناسب شکسته کنید.

RFC 4918 ↗
424

وابستگی ناموفق

درخواست ناموفق بود زیرا درخواست وابسته قبلی ناموفق بود.

WebDAV: در زنجیره عملیات‌های وابسته، اقدام قبلی ناموفق بود، بنابراین این عملیات انجام نشد. برای علت ریشه به شکست قبلی نگاه کنید.

RFC 4918 ↗
425

خیلی زود

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

مربوط به TLS 1.3 0-RTT (داده زودهنگام): سرور خطر پردازش درخواستی را که ممکن است تکراری باشد نمی‌پذیرد. کلاینت باید بعد از تکمیل دست‌دهی دوباره تلاش کند.

RFC 8470 ↗
426

نیاز به ارتقا

کلاینت باید به پروتکل متفاوتی تبدیل شود.

سرور از پاسخ‌گویی به درخواست روی پروتکل فعلی امتناع می‌کند اما پس از ارتقا پاسخ می‌دهد — پاسخ شامل سرآیند Upgrade است که پروتکل موردنیاز را نام می‌برد.

RFC 9110 ↗
428

پیش‌شرط الزامی است

سرور الزام می‌کند که درخواست شرطی باشد.

سرور سرآیندهای شرطی (مانند If-Match) را الزامی می‌کند تا از تعارض‌های به‌روزرسانی گم‌شده جلوگیری کند. منبع را واکشی کنید، ETag آن را ثبت کنید و با If-Match دوباره ارسال کنید.

RFC 6585 ↗
429

درخواست‌های بیش از حد

نرخ درخواست‌های کلاینت محدود شده است.

سرعت را کم کنید. پاسخ باید شامل سرآیند Retry-After باشد که زمان تلاش دوباره را نشان می‌دهد. در APIهایی که سهمیه درخواست دارند رایج است.

RFC 6585 ↗
431

فیلدهای سرآیند درخواست بیش از حد بزرگ

سرآیندها برای پردازش توسط سرور بیش از حد بزرگ هستند.

یا یک سرآیند یا مجموع اندازه سرآیندها از حد فراتر رفته است — بیشتر اوقات به‌دلیل کوکی‌های حجیم. کوکی‌ها را پاک کنید یا آنچه برنامه در آن‌ها ذخیره می‌کند کاهش دهید.

RFC 6585 ↗
451

به دلایل قانونی در دسترس نیست

دسترسی به دلیل خواسته‌های قانونی رد شده است.

منبع به دلایل قانونی مسدود است — سانسور، احکام دادگاه یا مقررات منطقه‌ای. عدد اشاره‌ای به رمان Fahrenheit 451 است.

RFC 7725 ↗
500

خطای داخلی سرور

سرور با شرایط غیرمنتظره‌ای مواجه شده است.

یک خطای عمومی برای همه خطاهای سمت سرور. برای علت واقعی گزارش‌های سرور را بررسی کنید: استثنای مدیریت‌نشده، خطای پایگاه داده و غیره.

RFC 9110 ↗
501

پیاده‌سازی نشده

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

مثلاً سرور روش HTTP را تشخیص نمی‌دهد. نادر در عمل — بیشتر اوقات 405 را خواهید دید.

RFC 9110 ↗
502

دروازه نامعتبر

سرور، به عنوان دروازه، پاسخ نادرست از سرور بالادستی دریافت کرد.

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

RFC 9110 ↗
503

سرویس در دسترس نیست

سرور به‌طور موقتی نمی‌تواند درخواست را مدیریت کند.

یا برای تعمیر و نگهداری از کار افتاده یا بیش از حد پرباز است. پاسخ باید شامل سرآیند Retry-After باشد. اغلب هنگام استقرار برگردانده می‌شود.

RFC 9110 ↗
504

مهلت دروازه تمام شد

سرور دروازه منتظر پاسخ بالادستی منقضی شد.

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

RFC 9110 ↗
505

نسخهٔ HTTP پشتیبانی نمی‌شود

سرور نسخه HTTP استفاده‌شده در درخواست را پشتیبانی نمی‌کند.

نسخه HTTP اصلی درخواست توسط سرور پشتیبانی نمی‌شود. تقریباً هرگز با کلاینت‌های جدید دیده نمی‌شود.

RFC 9110 ↗
506

نوع نیز مذاکره می‌کند

سرور دارای پیکربندی اشتباه مذاکره محتوا است.

مذاکره محتوای شفاف در حلقه به پایان رسید: گونه انتخاب‌شده خود برای مذاکره پیکربندی شده است. نشان‌دهنده خطای پیکربندی سرور است.

RFC 2295 ↗
507

فضای ذخیره‌سازی ناکافی

فضای دیسک سرور تمام شده است.

در اصل مخصوص WebDAV است اما گاهی سرورهای عمومی هم از آن استفاده می‌کنند. یعنی سرور به‌دلیل محدودیت‌های ذخیره‌سازی نمی‌تواند درخواست را ذخیره کند.

RFC 4918 ↗
508

حلقه شناسایی شد

سرور حلقه بی‌نهایت را حین پردازش درخواست تشخیص داد.

WebDAV: پردازش درخواست Depth: infinity در حلقه وارد شد (مثلاً اتصالات دایره‌ای). عملیات متوقف شد.

RFC 5842 ↗
510

توسعه نیافته

توسیع‌های بیشتر به درخواست نیاز دارند.

از چارچوب منسوخ HTTP Extension Framework: سرور قبل از برآورده کردن درخواست به اطلاعات بیشتری نیاز دارد. عملاً در وب امروز استفاده نمی‌شود.

RFC 2774 ↗
511

احراز هویت شبکه الزامی است

کلاینت برای دستیابی به دسترسی شبکه باید احراز هویت کند.

توسط پورتال‌های ورود (captive portal) در وای‌فای هتل/فرودگاه استفاده می‌شود تا نشان دهد کاربر باید پیش از دسترسی به سایت‌های خارجی وارد شبکه شود.

RFC 6585 ↗

کاربردهای رایج

  • مرجع برای طراحی APIهنگام طراحی API های REST، کد وضعیت مناسب را برای هر پاسخ انتخاب کنید.
  • کدهای خطا را سریع جستجو کنیدهنگامی که برنامه شما خطای HTTP گمراه کننده ای را برمی گرداند، جستجو کنید که واقعاً چه معنی است.
  • کدهای وضعیت HTTP را یاد بگیریدمرجع جامع برای دانش آموزان و توسعه دهندگانی که HTTP و REST را یاد می گیرند.
  • مرجع سریع در طول وقایعدر طول وقایع تولید، سریع جستجو کنید که هر کد وضعیت چه معنی است.
  • مرجع برای مستندات APIهنگام نوشتن مستندات API، پیوند به توضیحات معتبر کدهای وضعیتی که برمی گردانید.

نحوه کار

این ابزار یک مرجع سمت کلاینت است که بر پایه یک جدول جست‌وجوی ثابت از ۶۳ کد وضعیت HTTP ساخته شده و هر پنج کلاس (1xx–5xx) را پوشش می‌دهد؛ هر کد با شماره RFC تعریف‌کننده‌اش توضیح داده شده است. هیچ فراخوانی به سرور، API خارجی یا درخواست شبکه‌ای در کار نیست — همه فیلتر و نمایش در مرورگر با متدهای داخلی آرایه و رشته جاوااسکریپت انجام می‌شود.

  1. 1
    جدول جست‌وجو بارگذاری شد
    مجموعه کامل ۶۳ کد وضعیت ثبت‌شده IANA مستقیماً در این ابزار به‌عنوان یک آرایه جاوااسکریپت تعبیه شده، هر ورودی کد عددی، نام کانونی انگلیسی، کلاس دسته، و RFC خاصی که آن را تعریف می‌کند (مثلاً RFC 9110 برای بیشتر کدهای HTTP/1.1، RFC 6585 برای 429 Too Many Requests، RFC 2324 برای 418 I'm a Teapot) را حمل می‌کند.
  2. 2
    فیلتر در حافظه اجرا می‌شود
    هنگام تایپ یا انتخاب یک فیلتر دسته، Array.filter جاوااسکریپت روی لیست درون-حافظه اجرا می‌شود، جست‌وجوی شما را با شماره کد وضعیت، نام کانونی، و هر دو رشته توضیح کوتاه و بلند با استفاده از String.includes تطبیق می‌دهد — بدون تأخیر debounce، بدون رفت‌وبرگشت سروری.
  3. 3
    جزئیات با لینک RFC گسترش می‌یابند
    هر نتیجه به‌صورت یک عنصر HTML details/summary رندر می‌شود. گسترش یک ورودی توضیح فرم-بلند و یک لینک مستقیم به RFC معتبر روی rfc-editor.org را آشکار می‌کند، پس می‌توانید متن دقیق مشخصات هر کد را بخوانید.
  4. 4
    لینک‌های عمیق و کپی کلیپ‌بورد
    باز کردن یک ورودی هش URL را به شماره کد به‌روز می‌کند (مثلاً #404)، صفحه را قابل‌اشتراک و نشان‌گذاری-دوست می‌کند. دکمه کپی رشته کانونی (مثلاً '404 Not Found') را از طریق API navigator.clipboard مرورگر در کلیپ‌بورد می‌نویسد.

ابزارهای مرتبط

سؤالات متداول