Menu
flag Ar iconالعربيةdown icon

رموز حالة HTTP

مرجع قابل للبحث لكل رمز حالة HTTP مع شرح مبسط.

بقلم Nethanel Bar, Co-founder & CEO

آخر تحديث

Ready to actually learn to code?

Coddy teaches you by writing real code in your browser - interactive lessons, instant feedback, and AI help when you get stuck.

ما هي أكواد حالة HTTP؟

أكواد حالة HTTP هي الأرقام المكوّنة من ثلاث خانات التي يُرجِعها الخادم في بداية كل استجابة لتلخيص ما جرى. هذه الأكواد هي الطريقة التي تعتمد عليها المتصفحات والعملاء والوسطاء وشبكات CDN لتقرر هل تُخزِّن الاستجابة في الكاش، أم تُعيد التوجيه، أم تُعيد المحاولة، أم تُظهر خطأً للمستخدم.

كل كود حالة ينتمي إلى واحدة من خمس فئات بناءً على أول خانة فيه: 1xx معلوماتي، 2xx نجاح، 3xx إعادة توجيه، 4xx خطأ من العميل، 5xx خطأ من الخادم. بمجرد أن تعرف الفئة، تستطيع غالبًا تخمين المعنى العام حتى قبل أن تبحث عن الكود تحديدًا.

معظم التطبيقات تستخدم مجموعة محدودة فقط (200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, 503). إتقان معنى كل واحد منها - والتمييز بين 401 Unauthorized و403 Forbidden، أو بين 301 Moved Permanently و302 Found - هو ما يجعلك مطوِّر باك-إند أو واجهات API أقوى.

ماذا ستتعلّم أثناء استخدام هذا المرجع

  • أول خانة في الكود تُخبرك دائمًا بالفئة: 1xx معلوماتي، 2xx نجاح، 3xx إعادة توجيه، 4xx خطأ من العميل، 5xx خطأ من الخادم.
  • أكواد الحالة *جزء من العقد* الذي تُقدِّمه الـ API - يجب على العملاء أن يتفرّعوا بناءً عليها، لا أن يحلّلوا رسائل الخطأ من جسم الاستجابة.
  • 4xx يعني أن العميل أخطأ في شيء (إدخال خاطئ، أو غياب توثيق، أو مورد غير موجود). أمّا 5xx فيعني أن الخادم فشل بغضّ النظر عمّا فعله العميل.

كيف تستخدم مرجع أكواد الحالة خطوة بخطوة

  1. ابحث برقم الكود أو باسمه

    اكتب رقمًا (404, 429) أو كلمة مفتاحية (auth, redirect, rate limit) وستتم تصفية الأكواد المطابقة فورًا أثناء الكتابة.

  2. صفِّ النتائج حسب الفئة

    استخدم أزرار الفئات (1xx, 2xx, 3xx, 4xx, 5xx) لتقليص القائمة عندما تتصفّح بدلًا من البحث عن كود محدد.

  3. اقرأ الشرح بلغة بسيطة

    كل عنصر يتضمّن متى يُرسَل الكود، والسلوك المعتاد من جانب العميل، والسبب الأكثر شيوعًا لظهوره.

  4. قارِن بين الأكواد المتشابهة

    استخدم روابط "انظر أيضًا" بين الأزواج المُربكة (401 مقابل 403, 301 مقابل 302) لتختار الأنسب لـ API الخاصة بك.

فئات أكواد حالة HTTP

الفئات الخمس لأكواد حالة HTTP وما تعنيه باختصار. مُعرَّفة في RFC 9110 ومُسجَّلة في سجل IANA لأكواد حالة HTTP.

الفئةالمعنىأكواد شائعة
1xx معلوماتيالطلب وصل، وتجري معالجته100, 101, 103
2xx نجاحالطلب نجح200, 201, 204, 206
3xx إعادة توجيهاذهب للبحث في مكان آخر301, 302, 304, 307, 308
4xx خطأ من العميلهناك خلل في الطلب نفسه400, 401, 403, 404, 409, 422, 429
5xx خطأ من الخادمالخادم فشل في تنفيذ طلب صحيح500, 502, 503, 504

أكواد حالة HTTP الشائعة التي يجب معرفتها

الفرق بين 200 OK و201 Created و204 No Content

200 OK

الردّ المعتاد لـ "كل شيء تمام"، مع جسم استجابة.

201 Created

تمّ إنشاء مورد جديد نتيجة للطلب - عادةً بعد طلب POST.

204 No Content

نجاح، ولكن دون جسم استجابة. شائع بعد طلبات DELETE أو PUT التي لا تحتاج إلى إرجاع بيانات.

الثلاثة كلها أكواد نجاح - والفرق هو فيما تحمله الاستجابة. الكود 201 ينبغي أن يتضمّن ترويسة Location تشير إلى المورد الجديد؛ أمّا 204 فهو فارغ بطبيعته.

الفرق بين 301 Moved Permanently و302 Found

301

إعادة توجيه دائمة. المتصفحات ومحركات البحث تحفظها؛ والرابط القديم يُعتبر منتهيًا فعليًا.

302

إعادة توجيه مؤقتة. المتصفحات تُعيد فحص الرابط الأصلي مع كل طلب؛ والإشارات المرجعية تظل مرتبطة بالرابط القديم.

استخدم 301 عندما تكون قد نقلت المورد فعلًا (تغيير علامة تجارية، إعادة هيكلة للروابط). واستخدم 302 لإعادات التوجيه قصيرة الأمد مثل اختبارات A/B، أو إعادة توجيه تسجيل الدخول، أو صفحات الصيانة.

الفرق بين 401 Unauthorized و403 Forbidden

401

لست موثَّقًا. الخادم لا يعرف من أنت.

403

الخادم يعرف من أنت، لكن ليس لديك الصلاحية للوصول إلى هذا المورد.

إذا كان إرسال بيانات اعتماد مختلفة قد يحلّ المشكلة، فأرجِع 401. أمّا إذا كانت بيانات الاعتماد لن تُجدي نفعًا (المورد ممنوع على هذا المستخدم بالأساس)، فأرجِع 403.

الفرق بين 500 و502 و503 و504

500

خطأ خادم عام - كودك أطلق استثناءً غير مُعالَج.

502

بوابة سيئة - وسيط أمامي (CDN، أو موزِّع أحمال) لم يستطع الوصول إلى الخادم الخلفي.

503

الخدمة غير متاحة - الخادم يعمل لكنه محمَّل فوق طاقته أو في وضع الصيانة.

504

انتهت مهلة البوابة - وصل الوسيط إلى الخادم الخلفي لكنه لم يحصل على ردّ في الوقت المناسب.

الأربعة جميعها أخطاء خادم، لكنها تروي قصصًا مختلفة تمامًا للمصحِّح. 500 يدلّ على تطبيقك؛ و502 و504 يشيران إلى مسار الشبكة؛ و503 يشير إلى مشكلة في السعة.

أخطاء شائعة في استخدام أكواد حالة HTTP

  • إرجاع 200 OK مع {"error": "..."} في جسم الاستجابة. أكواد الحالة جزء من العقد - استخدم الكود الصحيح (400, 404, 500) حتى يتمكّن العملاء من التفرّع بناءً عليه.
  • استخدام 401 لأخطاء الصلاحيات. الكود 401 مخصَّص للتوثيق؛ أمّا رفض الصلاحيات فهو 403.
  • استخدام 200 للموارد المُنشَأة حديثًا بدلًا من 201 مع ترويسة Location.

أسئلة شائعة عن أكواد حالة HTTP

ماذا يعني HTTP 404؟
404 Not Found يعني أن الخادم فهم الطلب، لكن المورد عند ذلك الرابط غير موجود. غالبًا يكون السبب أن المسار خاطئ، أو أن المورد قد حُذف، أو أن الرابط كُتب بصورة غير صحيحة.
ما الفرق بين 401 و403؟
401 Unauthorized يعني أنك غير موثَّق - الخادم لا يعرف من أنت. أمّا 403 Forbidden فيعني أنك موثَّق لكن ليس لديك صلاحية للوصول إلى المورد. إرسال بيانات اعتماد مختلفة قد يحلّ مشكلة 401، لكنه لن يحلّ مشكلة 403.
ما الفرق بين 301 و302؟
301 Moved Permanently هو إعادة توجيه دائمة - المتصفحات ومحركات البحث تُحدِّث سجلاتها بناءً عليها. أمّا 302 Found فهو إعادة توجيه مؤقتة - حيث يستمر العملاء في زيارة الرابط الأصلي. استخدم 301 للنقل الدائم، و302 للتحويلات المؤقتة.
ماذا يعني HTTP 500؟
500 Internal Server Error هو خطأ عام من جهة الخادم، يُطلَق عادةً عندما يصعد استثناء غير مُعالَج إلى الأعلى. العميل لم يفعل شيئًا خاطئًا - الخادم هو الذي فشل في معالجة طلب صحيح.
هل يجب أن أستخدم دائمًا كود حالة محدَّد؟
نعم. استخدام 200 OK العام للفشل، أو 500 لكل المشاكل، يجعل الـ API أصعب في الاستخدام. اختر الكود الأكثر تخصيصًا الذي يُناسب الحالة - فالعملاء والوسطاء وأنظمة المراقبة ومنطق إعادة المحاولة كلهم يتفرّعون بناءً على كود الحالة.
ماذا يعني HTTP 429؟
429 Too Many Requests يُرسَل عندما يتجاوز العميل حدّ المعدل المسموح به. يجب أن تتضمّن الاستجابة ترويسة Retry-After تُخبر العميل متى يكون من الآمن المحاولة من جديد.

اعرف المزيد

أدوات مطورين أخرى

Coddy programming languages illustration

تعلّم البرمجة مع Coddy

ابدأ الآن