متوفر أيضًا بلغات أخرى: English · Español · Português · Français
رموز حالة HTTP
القائمة الكاملة من سجل IANA، بالحالات الأربع التي تخلطها أكثر الجداول في حالة واحدة.
ما رمز حالة HTTP؟
تبدأ كل استجابة HTTP برقمٍ من ثلاث خانات يقول كيف جرى الأمر. والخانة الأولى هي الفئة: فـ1xx تعني أن الخادم ما زال يعمل، و2xx أن الأمر نجح، و3xx أن عليك التوجه إلى مكان آخر، و4xx أن الطلب كان خاطئًا، و5xx أن الخادم هو الذي أخطأ. والرقم هو ما تتصرف بناءً عليه البرمجيات، أما العبارة المجاورة له فللبشر.
والقائمة ذات الحجية هي سجل رموز حالة HTTP لدى IANA، وهذه الصفحة مولَّدةٌ منه لا مكتوبةٌ عن ظهر قلب. وهذا أهم مما يبدو، لأن السجل يسجّل أربع حالاتٍ مختلفة، وتكاد كل الجداول المنشورة تسوّيها في قائمةٍ واحدة من رموزٍ قد تستعملها.
كيف تستعمل هذه القائمة؟
- ابحث بالرقم أو بالعبارة. فالأرقام تُطابَق من أولها، فكتابةُ 40 تعطيك عائلة 40x كلها، و404 تحصرها في واحد. أما النص فيُطابَق في أي موضع من العبارة، فجرّب gateway أو legal.
- انظر إلى الوسوم قبل أن تستعمل رمزًا. فـ«محجوز» تعني أن السجل نحّاه جانبًا لئلا يستعمله أحد، و«متقادم» تعني أنه سُجّل ثم سُحب، و«مؤقّت» تعني أن لهذا التسجيل تاريخ انتهاء.
- انزل إلى ما دون السجل لبقية الرموز. فالرموز التي رأيتها في الواقع ولم تجدها أعلاه موجودةٌ في قسم المزوّدين، كلٌّ منسوبًا إلى البرنامج الذي يُرجعه، ويليه المديات التي لم تخصّصها IANA لأحد.
الرمز 418 ليس رمز مزاحٍ يجوز لك استعماله
أكثر ما يتردّد عن رموز HTTP أن الرمز 418 I'm a Teapot مزحةُ أول أبريل من سنة 1998، وأن لك أن تُرجعه للتسلية. والشطر الأول صحيح، أما الثاني فمقلوب، والسجل يقولها صراحةً: فالرمز 418 مدرَجٌ، ووصفه (Unused)، ومرجعه القسم 15.5.19 من RFC 9110. وهو في السجل بالضبط كي لا يُخصَّص أبدًا لشيءٍ حقيقي.
وهذه حالٌ غير حال «غير المخصَّص»، وهذا التمييز هو علّة وجود هذه الصفحة. فالرمز 306 في الموضع نفسه: محجوزٌ غير صالحٍ للاستعمال إلى الأبد. والرمز 510 Not Extended في حالٍ ثالثة: فقد سُجّل فعلًا ثم أُعيد تصنيف تجربته إلى «تاريخي»، فصار مدرَجًا بوصفه متقادمًا. والرمز 104 Upload Resumption Supported في حالٍ رابعة: تسجيلٌ مؤقّت ينتهي في 13 نوفمبر 2026 وقد يزول ببساطة.
وإذا نحّيت هذه كلها بقي 61 رمزًا ينبغي للخادم أن يُرجعها فعلًا، من أصل 64 سطرًا في السجل. والجدولُ الذي يعرض الأربعة والستين سواءً إنما يدعوك إلى استعمال رمزين وُجدا كي لا يُستعملا.
الرموز التي ليست في السجل أصلًا
وللجداول المنشورة عيبٌ ثانٍ، وهو ما تضيفه من رموز. فالرموز 420 و444 و499 وعائلة 52x ترد في أكثر القوائم كأنها إلى جوار 404. ولم تخصّص IANA منها شيئًا. بل السجل صريحٌ في العكس بشأن 420: فالمدى 419-420 واحدٌ من أحد عشر مدًى موسومًا بأنه غير مخصَّص.
على أنها ليست مختلَقة: فهي سلوكيات حقيقية لبرمجيات بعينها، ولهذا وردت هنا في قسمها الخاص مقرونةً باسم البرنامج. فالرمز 499 هو nginx يسجّل أن العميل أغلق الاتصال قبل أن تجهز الاستجابة، والرمز 444 هو nginx يغلق الاتصال دون أن يردّ أصلًا. أما عائلة 52x فمن Cloudflare، ووثائق دعمها نفسها تسرد من 520 إلى 526 و530 إلى جانب رموز 5xx المعيارية دون أن تذكر في أي موضع أنها غير مسجَّلة، وهذا جزءٌ كبير من سبب انتشارها.
والنتيجة العملية بسيطة: أي رمزٍ في مدًى غير مخصَّص متاحٌ لاستعمالك الداخلي، وسيظل امتدادًا خاصًّا لا معيارًا، إذ لن تعرف أي مكتبة عميلٍ ما تعنيه به.
حدودٌ صادقة
هذه لقطةٌ زمنية. فالسجل يتغيّر: أُضيف 451 سنة 2016، و103 سنة 2017، ووصل 104 سنة 2024 تسجيلًا مؤقّتًا وقد لصق به تاريخُ انتهائه. وتاريخُ توليد القائمة مطبوعٌ في أسفلها، والسكربت الذي ولّدها في المستودع، فتستطيع الصفحة أن تقول متى كانت صحيحة بدل أن توهم بأنها صحيحة أبدًا.
وعباراتُ الحالة هي عبارات السجل نفسه بالإنجليزية، ولا تُترجَم عمدًا في النسخ الأخرى من هذه الصفحة. فالعبارة تسري على السلك جزءًا من البروتوكول — إذ يرسل الخادم Not Found لا «غير موجود» — فترجمتها تصف شيئًا لا يُرجعه أي خادم. والمترجَم هو الشرح المحيط بها، أما البروتوكول فلا.
وجدولُ المزوّدين هو الجزء الوحيد الذي لم يخرج من سجل، إذ لا سجلّ يُخرَج منه. وكل سطرٍ فيه مأخوذٌ من وثائق المزوّد نفسه. وهو ليس جامعًا ولا يمكن أن يكون، فلكلٍّ أن يُرجع ما شاء من الأرقام.
لماذا هي مجانية؟
لأنها قائمة. فالصفحة كلها نصٌّ ساكن مع صندوق بحثٍ يرشّحها داخل متصفحك: لا يُرفع شيء ولا يُخزَّن شيء، وليس ثمة خادم في قراءتها.
فلا حساب ولا تسجيل ولا شيء خلف جدار. والسجلّ الذي تقوم عليه وثيقةٌ عامة تتعهّدها IANA، وقائمةٌ من حقائق عامة لا ينبغي أن يقف أمامها رسم.