دليل أكواد حالة HTTP
دليل قابل للبحث لكل كود حالة HTTP رسمي — ماذا يعني كل واحد ومتى ينبغي للخادم إرساله، وفق RFC 9110 ووثائق RFC ذات الصلة.
200 مشاهدة
لا توجد أكواد حالة مطابقة.
لماذا تُجمَّع أكواد الحالة بحسب الرقم الأول
كل كود حالة HTTP رقم من ثلاثة أرقام، والرقم الأول وحده يخبر العميل بالفئة العامة للاستجابة قبل أن يقرأ باقيها حتى — وهو خيار تصميمي متأصل في HTTP منذ أولى مواصفاته واستمر لاحقًا، ورسّمه اليوم RFC 9110، الوثيقة التي وحّدت سلسلة RFC 7230-7235 الأقدم وحلّت محلها لتُعرِّف دلالات HTTP بمعزل عن أي إصدار بروتوكول واحد (يشترك HTTP/1.1 وHTTP/2 وHTTP/3 جميعًا في معاني أكواد الحالة نفسها). 1xx (إعلامي) يعني أن الطلب استُلم وفُهم والمعالجة مستمرة — وهذه استجابات مؤقتة لا ينبغي للعميل معاملتها كنهائية. 2xx (نجاح) يعني أن الطلب استُلم وفُهم وقُبل. 3xx (إعادة توجيه) يعني أن إجراءً إضافيًا مطلوب لإكمال الطلب، عادةً جلب رابط مختلف. 4xx (خطأ من العميل) يعني أن الطلب، كما أُرسل، يحتوي مشكلة تسبب بها العميل — بنية سيئة، مصادقة مفقودة، مورد غير موجود. 5xx (خطأ من الخادم) يعني أن الطلب كان صالحًا على ما يبدو لكن الخادم فشل في تنفيذه. هذا النظام القائم على الرقم الأول يعني أن عميلًا لا يعرف سوى الرقم "4" ولا شيء آخر عن كود محدد لا يزال يعرف، بشكل صحيح، أن شيئًا في طلبه هو ذاته يحتاج إصلاحًا لا إعادة محاولة مطابقة — وهذا السلوك الاحتياطي هو بالضبط سبب اشتراط المعيار له.
يُقسِّم الرقمان الثاني والثالث كل فئة إلى معانٍ محددة وموثَّقة، ويُتوقَّع من العميل الرجوع إلى سلوك الفئة العامة لأي كود لا يتعرف عليه تحديدًا — وهذا سبب بقاء أكواد غامضة أو أحدث مثل 226 أو 508 آمنة للتعامل معها بشكل صحيح تقريبيًا حتى من قِبَل برمجيات أقدم دون دعم صريح. الأكواد أيضًا لا تُخترَع بحرية: يحافظ على السجل الكامل هيئة IANA (سلطة الأرقام المخصصة على الإنترنت) بالضبط حتى لا يعني "599" أو "250" شيئين مختلفين على خادمين مختلفين — كل كود قيد الاستخدام الفعلي يُرجَع إلى RFC محدد يُعرِّف دلالاته الدقيقة، ويوسِّع عدد منها مواصفة HTTP/1.1 الأصلية لبروتوكولات معينة، أبرزها WebDAV (RFC 4918)، وهو مصدر أكواد 207 و208 و422 و423 و424 وَ507/508 في هذه الصفحة.
كودان يستحقان معرفة دقيقة: 404 مقابل 410
من أكثر الأكواد التباسًا 404 غير موجود وَ410 مُزال نهائيًا، والفرق بينهما ليس شكليًا — فهو يُغيِّر كيفية تصرف محرك بحث ومتصفح. 404 غامض عمدًا: لا تملك الخادم أي معلومة عمّا إذا كان المورد موجودًا يومًا ما على ذلك الرابط، أو قد يعود، أو أن الرابط كُتب خطأً ببساطة. 410 عبارة أقوى ومتعمَّدة: كان المورد موجودًا فعليًا في ذلك الرابط بالضبط وأُزيل عمدًا وبشكل نهائي، دون عنوان إعادة توجيه — يوصي RFC 9110 صراحةً بـ410 تحديدًا لحالة "من المرجح أن يكون الوضع دائمًا" هذه حيث يُقلِّل 404 من درجة اليقين. تعامل محركات البحث هذا الأمر بشكل مختلف عمليًا: عادةً ما يُحذَف رابط يُعيد 404 متكررة من الفهرس فقط بعد إعادة زحفه عدة مرات على مدى فترة طويلة تحسبًا لعودته، بينما يُشير 410 إلى إزالة متعمَّدة وتتصرف محركات البحث عمومًا بناءً عليه بشكل أسرع، فتُخرِج الصفحة من الفهرس أبكر لأن الخادم أكّد صراحةً أنها لن تعود. استخدام 410 بشكل صحيح عند التقاعد النهائي لصفحة ما — بدلًا من الاعتماد الافتراضي على 404 لكل شيء — رافعة تقنية صغيرة لكن حقيقية لتحسين محركات البحث.
- 301 مقابل 302 مقابل 307 مقابل 308: يعني كل من 301 و308 "نُقل بشكل دائم"، بينما يعني كل من 302 و307 "نُقل مؤقتًا" — قُدِّم الزوج الأحدث 307/308 خصيصًا لضمان الحفاظ على طريقة الطلب وجسمه عند إعادة التوجيه (يبقى POST كـPOST)، لأن سلوك المتصفحات التاريخي الشائع كان يحوِّل إعادة توجيهات 301/302 بصمت إلى GET، ما كان يُعطِّل إعادة إرسال النماذج بطرق تُصلحها الأكواد الأحدث.
- 401 مقابل 403: يعني 401 غير مصرَّح تقنيًا "لم تُوثَّق هويتك — سجّل الدخول"، رغم الاسم المُربِك؛ ويعني 403 ممنوع "هويتك معروفة، لكن لا يُسمح لك بالوصول إلى هذا"، وهو تمييز تُبهمه واجهات برمجية كثيرة عمليًا لكن المواصفة تُبقيه منفصلًا بوضوح.
- 429 طلبات كثيرة جدًا (RFC 6585) هو استجابة تحديد المعدل القياسية، ويقترن عادةً برأس
Retry-Afterيخبر العميل بالضبط كم يجب أن ينتظر قبل إعادة المحاولة. - أكواد 1xx نادرًا ما تُرى مباشرةً لأن معظم مكتبات عميل HTTP تتعامل معها بشفافية قبل أن يرى كود تطبيقك استجابة أصلًا — 100 استمرار، على سبيل المثال، يتيح للعميل التحقق مما إذا كان جسم طلب كبير يستحق الإرسال أصلًا قبل إرساله.
الأسئلة الشائعة
ما الفرق الفعلي بين 404 و410؟
كلاهما يعني تعذّر العثور على المورد، لكن 404 يترك غامضًا ما إذا كان المورد وُجد يومًا أو قد يعود، بينما 410 عبارة متعمَّدة بأن المورد كان موجودًا في ذلك الرابط وأُزيل بشكل نهائي ومتعمَّد. عمومًا تُخرِج محركات البحث صفحة 410 من الفهرس أسرع من صفحة 404 لأن الخادم أكّد صراحةً أن الإزالة دائمة.
هل 418 "أنا إبريق شاي" كود حالة حقيقي وقابل للاستخدام؟
نشأ في RFC 2324، وثيقة "بروتوكول التحكم بإبريق قهوة النص الفائق" لعام 1998، وهي RFC مزحة يوم كذبة أبريل. لم يُقصَد به الجدّية قط، لكنه أثبت فائدته ككود اختبار مميز وواضح، ويحافظ عليه RFC 9110 اليوم رسميًا مع ملاحظة صريحة بأن حالته اختيارية ولا يُتوقَّع تطبيقه من قِبَل خوادم حقيقية.
لماذا تُعطِّل إعادة توجيهات 301 و302 أحيانًا إرسال النماذج؟
تاريخيًا، كانت متصفحات كثيرة تحوِّل بصمت طلب POST مُعاد توجيهه إلى طلب GET عند اتباع 301 أو 302، فتُلقي الجسم المُرسَل. قُدِّم الكودان الأحدث 307 (إعادة توجيه مؤقتة) وَ308 (إعادة توجيه دائمة) خصيصًا لضمان الحفاظ على طريقة HTTP الأصلية وجسم الطلب عبر إعادة التوجيه.
ما الفرق بين 401 و403؟
يعني 401 غير مصرَّح في الواقع أن العميل لم يُوثَّق أصلًا — فهو، رغم الاسم، يطلب بيانات اعتماد. يعني 403 ممنوع أن هوية العميل معروفة لكن غير مسموح له صراحةً بالوصول إلى ذلك المورد المحدد. تستخدمهما واجهات برمجية حقيقية كثيرة بشكل فضفاض أو بالتبادل، لكن المواصفة تُبقي المعنيين منفصلين.
من أين تأتي أكواد WebDAV المحددة مثل 507 أو 423؟
تُعرَّف في RFC 4918، مواصفة WebDAV (التأليف والتحكم بالإصدارات الموزَّع عبر الويب)، التي توسِّع HTTP العادي بعمليات لإدارة الملفات عن بعد مثل قفل مورد (423 مقفل) أو الإبلاغ عن نفاد مساحة تخزين الخادم (507 تخزين غير كافٍ). تبقى جزءًا من سجل أكواد حالة HTTP الرسمي لدى IANA إلى جانب أكواد HTTP الأساسية.
أدوات مشابهة
الإبلاغ عن مشكلة
دليل أكواد حالة HTTP
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!