في هذا الدرس 16تصفّح المواضيع
في كل مرة يرسل فيها المتصفح أو تطبيق الهاتف أو العميل البرمجي طلب إلى الخادم، فإنه يحتاج إلى إشارة رقمية فورية وحاسمة توضح مصير هذا الطلب. تمثل أكواد حالة HTTP () أرقاماً قياسية مكونة من ثلاثة أرقام يعيدها الخادم في سطر الحالة (أو داخل الحقل الزائف في و) لتحديد نتيجة معالجة الطلب بدقة.
تخضع هذه الأكواد لمعيار وسجل هيئة العالمي، وبناءً عليها يقرر المتصفح آلياً ما إذا كان سيعرض الصفحة، أو ينتقل إلى رابط بديل، أو يستخدم النسخة المخزنة مؤقتاً، أو يطلب تسجيل الدخول.
قبل الغوص في التفاصيل الهندسية، استعرض جدول المصطلحات التقنية الأساسية لهذا الدرس:
| المصطلح بالعربية | المصطلح بالإنجليزية | النطق التقني | المعنى الهندسي المبسط |
|---|---|---|---|
| كود حالة HTTP | إتش تي تي بي ستاتس كود | رقم قياسي من ثلاثة أرقام يعيده الخادم في بداية الاستجابة لتحديد نتيجة معالجة الطلب. | |
| فئة كود الحالة | ستاتس كود كلاس | التصنيف العام الذي يحدده الرقم الأول من اليسار (1xx إلى 5xx) لبيان طبيعة الاستجابة. | |
| استجابة إعلامية | إنفورميشنال ريسبونس | رد تمهيدي غير نهائي يخبر العميل باستلام رأس الطلب واستمرار المعالجة أو تبديل البروتوكول. | |
| إعادة التوجيه | ريدايركشن | فئة أكواد تطلب من المتصفح اتخاذ خطوة إضافية للوصول للمورد مثل الانتقال لعنوان Location جديد. | |
| خطأ من جهة العميل | كلاينت إيرور | فئة أكواد تشير إلى أن الطلب المرسل من العميل غير صالح أو غير مصرح به أو يطلب مورداً غير موجود. | |
| خطأ من جهة الخادم | سيرفر إيرور | فئة أكواد تشير إلى أن طلب العميل سليم، لكن الخادم فشل داخلياً أو عبر بوابة وسيطة في تنفيذه. |
HTTP/1.1 200 OK
HTTP/1.1 301 Moved Permanently
HTTP/1.1 404 Not Found
HTTP/1.1 500 Internal Server Error
تُصنَّف جميع أكواد حالة هندسياً في خمس فئات رئيسية بحسب الرقم الأول من اليسار:
- الفئة الإعلامية (): استلم الخادم حقول الرأس المبدئية والعملية لا تزال مستمرة أو يجري تبديل البروتوكول.
- الفئة الناجحة (): استلم الخادم الطلب وفهمه ونفذه بنجاح تام.
- الفئة إعادة التوجيه (): يتطلب إتمام الطلب إجراءً إضافياً من المتصفح، مثل الانتقال إلى رابط جديد أو قراءة النسخة المخزنة محلياً.
- الفئة أخطاء العميل (): الخلل في الطلب المرسل من جهة العميل (صياغة خاطئة، نقص مصادقة، منع صلاحية، أو مسار غير موجود).
- الفئة أخطاء الخادم (): طلب العميل صحيح تماماً، لكن الخادم الأصلي أو البوابة الوسيطة تعذر عليهما إتمام المعالجة بسبب عطل داخلي أو ضغط زائد.
تمثل الفئة الإعلامية ردوداً تمهيدية مؤقتة يرسلها الخادم قبل الاستجابة النهائية، ولا تحتوي أبداً على جسم رسالة. تشمل هذه الفئة أربعة أكواد:
- كود (متابعة): عندما يعتزم العميل رفع ملف ضخم، يرسل أولاً حقول الرأس فقط مع الحقل ؛ فإذا وافق الخادم على الصلاحيات والحجم ردّ بكود ليبدأ العميل إرسال الجسم الفعلي دون إهدار الشبكة.
- كود (بروتوكولات التبديل): يعيده الخادم عند الموافقة على ترقية الاتصال عبر حقل الرأس ، وأشهر تطبيقاته الترقية من إلى بروتوكول الاتصال اللحظي ثنائي الاتجاه .
- كود (قيد المعالجة): استُخدم تاريخياً في امتدادات لإعلام العميل أن الخادم استلم طلباً طويلاً ولا يزال يعالجه لمنع انتهاء المهلة الزمنية.
- كود (تلميحات مبكرة): يرسله الخادم مبكراً أثناء تجهيز صفحة ليحمل حقول التي توجه المتصفح لتحميل ملفات والخطوط مسبقاً لتسريع العرض.
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
HTTP/1.1 103 Early Hints
Link: </css/main.css>; rel=preload; as=style
يُعد كود الكود القياسي الأشهر للدلالة على نجاح الطلب في بروتوكول . ووفق معيار ، تختلف دلالة الجسم المرفق مع بحسب طريقة الطلب:
- مع طريقة : جُلِب المورد المطلوب بنجاح وأُرسل تمثيله الكامل داخل جسم الاستجابة.
- مع طريقة : أُعيدت حقول الرأس الوصفية للمورد بنجاح دون إرسال جسم الرسالة.
- مع طرق أو أو : نُفذت العملية بنجاح ويحمل جسم الاستجابة بيانات توضح نتيجة التنفيذ أو الحالة المحدثة.
وإلى جانب ، تضم فئة النجاح أيضاً كود (استُلم الطلب ووُضع في طابور المعالجة غير المتزامنة بالخلفية) وكود (المستخدم في بث مقاطع الفيديو واستكمال التنزيلات الجزئية عبر حقل ).
HTTP/1.1 200 OK
Date: Wed, 05 Nov 2026 12:20:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 49
{"id":768,"slug":"http-status-codes","ok":true}
عند بناء أو فحص واجهات البرمجة القياسية ()، يمنحك التمييز بين كودي و دقة هندسية أعلى من الاكتفاء بكود العام:
- كود (تم الإنشاء): يُعاد عندما ينجح طلب (غالباً أو ) في إنشاء سجل أو مورد جديد فعلياً على الخادم. ومن أفضل الممارسات القياسية إرفاق حقل الرأس متضمناً رابط المورد الجديد مع إرجاع بياناته في الجسم.
- كود (ناجح بدون محتوى): يُعاد عند نجاح عملية (مثل حذف سجل بـ أو حفظ تلقائي للإعدادات) دون حاجة لإرجاع أي بيانات في الجسم؛ ويُحظر احتواء استجابة على أي بايتات في الجسم.
HTTP/1.1 201 Created
Location: https://api.closetag.com/v1/users/42
Content-Type: application/json; charset=utf-8
Content-Length: 33
{"id":42,"username":"ali_dev"}
HTTP/1.1 204 No Content
Date: Wed, 05 Nov 2026 12:25:00 GMT
مرجع بقية أكواد النجاح التخصصية في الفئة :
- كود (تم القبول للمعالجة): يُفيد باستلام الطلب ووضعه في طابور المعالجة غير المتزامنة بالخلفية (مثل تصدير تقرير ضخم أو معالجة فيديو) دون اكتمال النتيجة لحظياً.
- كود (معلومات معدلة لدى وسيط): يرسله خادم وسيط قام بتعديل بعض حقول الرأس أو التمثيل القادم من الخادم الأصلي.
- كود (إعادة تعيين المحتوى): يطلب من المتصفح تفريغ حقول النموذج () بعد نجاح الإرسال لتمكين إدخال سجل جديد، ولا يتضمن جسم رسالة.
- كود (المحتوى الجزئي): يُستخدم عند طلب جزء محدد من ملف كبير عبر حقل الرأس (مثل تقديم الفيديو أو استكمال تنزيل متوقف)، ويُرفق بحقل .
- الأكواد و و: أكواد متخصصة تُستخدم في عمليات المجمعة (إرجاع حالة عدة ملفات في رد واحد) وتطبيقات الفروق الجزئية.
تشير فئة إعادة التوجيه إلى أن إتمام الطلب يتطلب خطوة إضافية من العميل. وفي أكواد التوجيه إلى عنوان جديد ( و و و و)، يرسل الخادم الرابط الهدف داخل حقل رأس الاستجابة .
فور استلام المتصفح لكود توجيه مرفق بحقل ، فإنه يرسل تلقائياً طلباً جديداً إلى العنوان البديل (مع وجود سقف أمان يقارب 20 تحويلاً متتالياً لمنع حلقات التوجيه اللانهائية ). أما في أداة سطر الأوامر ، فيجب تمرير الخيار لتتبع مسار التوجيه آلياً.
- كود (خيارات متعددة): يُفيد بوجود عدة تمثيلات للمورد المطلوب ليختار العميل أو المتصفح الأنسب منها.
- كود (انظر موقعاً آخر): يوجه المتصفح بعد إرسال نموذج للانتقال إلى صفحة تأكيد الطلب باستخدام طريقة حصراً (نمط الذي يمنع تكرار الدفع عند تحديث الصفحة).
- الكودان و: أكواد تاريخية قديمة أُلغي العمل بها في المتصفحات الحديثة لدواعٍ أمنية.
curl -i -L https://closetag.com/http-codes
HTTP/1.1 301 Moved Permanently
Location: https://www.closetag.com/tutorials/web-technology/http-status-codes
Content-Length: 0
يُعد التمييز بين أنواع إعادة التوجيه الدائمة والمؤقتة وتأثيرها على طريقة الطلب أمراً جوهرياً لمحركات البحث () وواجهات البرمجة:
- الفرق بين و: يخبر كود المتصفحات ومحركات البحث أن الرابط انتقل بشكل دائم ونهائي إلى العنوان الجديد في (فتُنقل قوة الأرشفة للرابط الجديد)، بينما يدل كود على أن التحويل مؤقت ويجب الاستمرار في طلب الرابط الأصلي مستقبلاً.
- الحفاظ على طريقة الطلب في و مقابل : تاريخياً، كانت المتصفحات تحوّل طلب إلى عند تلقي أو . ولحسم ذلك هندسياً، خُصص كود لتحويل إلى عمداً بعد إرسال النماذج، بينما يضمن كودا و الاحتفاظ بنفس طريقة الطلب ( يبقى ) ونفس الجسم دون تغيير.
رغم وقوع كود ضمن الفئة ، فإنه لا يوجه المتصفح إلى رابط آخر، بل يمثل حجر الزاوية في التحقق الشرطي من التخزين المؤقت (). فعندما تنتهي مدة صلاحية ملف مخزن في المتصفح، يرسل المتصفح طلباً مشروطاً يتضمن حقل مع بصمة المحفوظة لديه.
إذا لم يتغير الملف على الخادم، يرد الخادم فوراً بكود دون إرسال أي جسم، ليستخدم المتصفح نسخته المحلية مباشرة ويوفر إعادة تنزيل الملف.
GET /assets/bundle.css HTTP/1.1
Host: www.closetag.com
If-None-Match: "9f8e7d-v2"
HTTP/1.1 304 Not Modified
ETag: "9f8e7d-v2"
Cache-Control: public, max-age=86400
ضمن فئة أخطاء العميل ، يساعد التفريق الهندسي بين كود وكود على تشخيص سبب رفض البيانات بدقة:
- كود (خطأ صياغي أو تركيبي): يعجز الخادم عن قراءة الطلب أصلاً بسبب عطب في الصياغة، مثل إرسال نص مكسور ينقصه قوس إغلاق أو حقول رأس مشوهة.
- كود (خطأ في التحقق المنطقي): صياغة الطلب وملف سليمة تماماً وقد قرأها الخادم بنجاح، لكن القيم المرسلة تخالف قواعد التحقق المنطقية (مثل إرسال بريد إلكتروني غير صالح أو كلمة مرور أقصر من الحد الأدنى).
HTTP/1.1 422 Unprocessable Content
Content-Type: application/problem+json; charset=utf-8
Content-Length: 92
{"title":"Validation Failed","status":422,"errors":{"email":["Invalid email address"]}}
يُعد كود أشهر أكواد الحالة على الإطلاق، ويعني أن الخادم لم يعثر على أي مورد يطابق المسار المطلوب ()، أو أن الخادم يختار أمنياً إخفاء وجود مورد خاص عن مستخدم غير مخول بمعرفة وجوده أصلاً.
ومن الأكواد الشقيقة المهمة كود ، الذي يخبر محركات البحث بأن هذا الرابط كان موجوداً في السابق لكنه حُذف نهائياً عن عمد دون رابط بديل، مما يسرّع إزالته من فهارس البحث مقارنةً بكود .
يُعاد كود عندما يكون المسار المطلوب موجوداً فعلاً على الخادم، لكنه لا يقبل طريقة الطلب () المستخدمة؛ مثل إرسال طلب حذف إلى رابط مقالة ثابتة لا تقبل سوى القراءة عبر و.
ويلزم معيار الخادمَ عند إرجاع كود بأن يُرفق وجوباً حقل الرأس موضحاً فيه قائمة الطرق المسموح بها لهذا المورد.
DELETE /tutorials/web-technology/http-status-codes HTTP/1.1
Host: www.closetag.com
HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS
Content-Length: 0
يُستخدم كود (المعرّف في المعيار ) لإبلاغ العميل بأنه تجاوز الحد الأقصى المسموح به من الطلبات خلال فترة زمنية محددة ().
تعتمد الواجهات البرمجية وبوابات تسجيل الدخول على كود لحماية الخوادم من هجمات تخمين كلمات المرور واستنزاف الموارد، وغالباً ما ترفق معه حقل الرأس لتحديد عدد الثواني التي يجب على العميل انتظارها قبل المحاولة مجدداً.
HTTP/1.1 429 Too Many Requests
Retry-After: 60
Content-Type: application/json; charset=utf-8
Content-Length: 62
{"error":"rate_limit_exceeded","retry_after_seconds":60}
يمثل كود الكود العام لأخطاء الخادم الداخلية؛ ويعني أن طلب العميل وصل سليماً، لكن تطبيق الخادم واجه استثناءً برمجياً غير معالج أو فشل اتصال بقاعدة البيانات منعه من إكمال العملية.
ويجاوره في الفئة نفسها كود ، الذي يعني أن الخادم لا يدعم الوظيفة أو طريقة الطلب المرسلة على مستوى الخادم بالكامل.
تعتمد تطبيقات الويب الحديثة على خوادم عكسية وموازنات أحمال وشبكات (مثل و) تقف كبوابة أمام الخادم التطبيقي الخلفي. وعند حدوث خلل بين البوابة والخادم الخلفي، تحدد ثلاثة أكواد موضع المشكلة بدقة:
- كود (بوابة سيئة): تواصل الخادم الوسيط مع الخادم الخلفي، لكنه تلقى منه رداً تالفاً أو مقطوعاً (كأن تتوقف خدمة التطبيق الخلفية فجأة أثناء الرد).
- كود (الخدمة غير متاحة مؤقتاً): الخادم غير قادر حالياً على استقبال الطلبات بسبب ضغط هائل مؤقت أو وجوده في وضع الصيانة المجدولة، وغالباً ما يرفق بحقل .
- كود (انتهاء مهلة البوابة): أرسل الخادم الوسيط الطلب إلى الخادم الخلفي وانتظر الرد، لكن الخادم الخلفي استغرق وقتاً طويلاً تجاوز المهلة الزمنية المحددة دون إجابة.
استخدم محاكي القرارات التفاعلي الآتي لاختبار كيف يختار الخادم كود الحالة الأدق في سيناريوهات الإنشاء والتحقق والصلاحيات وأخطاء البوابة:
يمكنك فحص ومراقبة أكواد حالة عملياً في الوقت الفعلي عبر أدوات مطوري المتصفح () أو عبر سطر الأوامر :
- داخل تبويب الشبكة في المتصفح (): يعرض عمود كود الحالة لكل طلب مميزاً بالألوان (الأخضر لنجاح ، والرمادي أو الأصفر للتوجيه ، والأحمر لأخطاء ). احرص على تفعيل خيار (الاحتفاظ بالسجل) قبل النقر على الروابط لمشاهدة سلسلة تحويلات قبل وصول صفحة النهائية.
- عبر سطر الأوامر : استخدم الخيار لجلب سطر الحالة وحقول الرأس فقط، أو الخيار لطباعة الرقم الثلاثي لكود الحالة مباشرة.
curl -I https://www.closetag.com/tutorials/web-technology/http-status-codes
curl -s -o /dev/null -w "%{http_code}
" https://www.closetag.com/tutorials
تدرّب في محاكي فاحص الشبكة التفاعلي الآتي على تتبع سلاسل أكواد الحالة كما تظهر في تبويب مع تفعيل :
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
تعرّفت في هذا الدرس بعمق هندسي على الفئات الخمس لـ أكواد حالة HTTP ( إلى )، والفروق الدقيقة بين و و، وأنواع التوجيه ، والتحقق الشرطي ، والمقارنات الحاسمة بين و وبين و، وتشخيص أخطاء البوابة . الخطوة التالية: انتقل الآن إلى الدرس التالي حقول الرأس HTTP () لندرس بالتفصيل الصياغة القياسية والتصنيف الوظيفي لحقول الرأس في بروتوكول !
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات12
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 HTTP Status Code كود حالة HTTP
- عدد قياسي من ثلاثة أرقام يعيده الخادم في الاستجابة لبيان نتيجة معالجة طلب العميل.
- للمراجعة
- 02 1xx Informational الفئة الإعلامية 1xx
- استجابات تمهيدية بدون جسم تُرسل قبل الرد النهائي مثل 100 للاستمرار و101 لتبديل البروتوكول و103 للتلميحات المبكرة.
- للمراجعة
- 03 201 Created كود 201 تم الإنشاء
- كود نجاح يفيد بإنشاء مورد جديد على الخادم، ويُرفق غالباً بحقل الرأس Location للإشارة لرابط المورد.
- للمراجعة
- 04 204 No Content كود 204 بدون محتوى
- كود نجاح يفيد بإتمام العملية بنجاح مع عدم وجود أي جسم رسالة لإرجاعه إلى العميل.
- للمراجعة
- 05 301 Moved Permanently كود 301 نقل دائم
- كود إعادة توجيه دائم يأمر المتصفحات ومحركات البحث باعتماد العنوان الجديد الموجود في حقل Location نهائياً.
- للمراجعة
- 06 304 Not Modified كود 304 لم يتعدل
- استجابة تحقق شرطي تؤكد للمتصفح أن النسخة المخزنة لديه لا تزال صالحة ومطابقة للخادم دون إرسال جسم.
- للمراجعة
- 07 307 / 308 Method-Preserving Redirects توجيه 307 و308 الحافظ للطريقة
- أكواد إعادة توجيه مؤقتة (307) ودائمة (308) تلزم العميل بعدم تغيير طريقة الطلب (مثل POST) أو جسم الرسالة عند الانتقال للعنوان الجديد.
- للمراجعة
- 08 401 Unauthorized vs 403 Forbidden الفرق بين 401 و403
- كود 401 يدل على غياب أو بطلان إثبات الهوية (المصادقة)، بينما 403 يدل على عدم امتلاك الهوية المعروفة لصلاحية الوصول.
- للمراجعة
- 09 422 Unprocessable Content كود 422 محتوى غير قابل للمعالجة
- كود خطأ من فئة 4xx يُعاد عندما تكون صياغة الطلب سليمة تركيبياً لكن القيم المرسلة تخالف قواعد التحقق المنطقية.
- للمراجعة
- 10 429 Too Many Requests كود 429 طلبات كثيرة جداً
- كود تقييد معدل الطلبات عند تجاوز العميل للحد المسموح به خلال فترة زمنية، ويُرفق غالباً بحقل Retry-After.
- للمراجعة
- 11 502 Bad Gateway كود 502 بوابة سيئة
- كود خطأ يُعاد عندما يستلم الخادم الوسيط (Reverse Proxy) رداً تالفاً أو مقطوعاً من الخادم التطبيقي الخلفي.
- للمراجعة
- 12 504 Gateway Timeout كود 504 انتهاء مهلة البوابة
- كود خطأ يُعاد عندما ينتظر الخادم الوسيط رد الخادم الخلفي وتنتهي المهلة الزمنية المحددة دون استجابة.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات5
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 IANA IANA
- Internet Assigned Numbers Authority
- الهيئة العالمية المسؤولة عن إدارة السجل الرسمي لأكواد حالة بروتوكول HTTP.
- للمراجعة
- 02 PRG PRG
- Post / Redirect / Get Pattern
- نمط هندسي يرد على إرسال النماذج POST بكود 303 See Other لتحويل المتصفح إلى طلب GET آمن يمنع تكرار الإرسال.
- للمراجعة
- 03 CDN CDN
- Content Delivery Network
- شبكة توصيل المحتوى الموزعة التي تخزن الردود مؤقتاً وتعمل كبوابة أمام الخادم الأصلي.
- للمراجعة
- 04 SEO SEO
- Search Engine Optimization
- تحسين محركات البحث الذي يعتمد بشكل مباشر على دقة أكواد 200 و301 و404 و410 في توجيه عناكب الفهرسة.
- للمراجعة
- 05 REST REST
- Representational State Transfer
- النمط المعماري القياسي لواجهات الويب البرمجية الذي يوظف طرق وأكواد حالة HTTP للتعبير عن نتائج العمليات.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
افتح تبويب Network في أدوات المطورين وفعّل خيار Preserve log، ثم افتح رابطاً يخضع لتحويل 301 وعاين حقل Location في الاستجابة الأولى متبوعاً باستجابة 200 OK.
-
نفّذ الأمر curl -s -o /dev/null -w "%{http_code}\n" على مسار موجود (200) ومسار غير موجود (404) لاختبار الفحص الآلي لأكواد الحالة.
-
راجع الأمثلة النصية في الدرس وحدد حقل الرأس المرافق لكل من كود 401 (WWW-Authenticate) وكود 405 (Allow) وكودي 429/503 (Retry-After).
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.