FullStackHTTP

أكواد حالة HTTP

كتب بواسطة: 07/11/2019 لا يوجد تعليقات

مرحباً أنا Victor Nizeyimana  دعونا نتحدث عن أكواد حالة HTTP.

الصورة بواسطة  John Schnobrich في  Unsplash

أكوادحالة HTTP – يتم إصدار أكواد الحالة بواسطة الخادم (server) استجابةً لطلب العميل(client) المقدم إلى الخادم(server). رمز الحالة المفضل لدي هو: “418: أنا إبريق الشاي”. هذه ليست مزحة! … تحقق من RFC2324 القسم 2.3.2.

إذا كنت تحب أن تعرف كل رموز الحالة؟ ها هي القائمة الخاصة بهم!

الأقسام:

1×× معلوماتية

2×× نجاح

3×× إعادة التوجيه

4×× خطأ عميل (client)

5×× خطأ خادم (server)

سهل التذكر؟ دعونا نفحص قائمة أكواد حالة HTTP…

كود الحالة: 100 استمر

تم إستلام الجزء الأولي من الطلب ولم يتم رفضه من قبل الخادم (server) بعد. ويعتزم الخادم (server)  إرسال رد نهائي بعد تلقي الطلب بالكامل واتخاذ إجراء بشأنه.

المصدر: RFC7231 القسم6.1.1

كود الحالة: 101 تشغيل البرتوكول

الخادم (server) يتفهم طلب العميل (client) عبر الترقية في ترويسة (header) الحقل1 وهو مستعد للالتزام به وتغيير بروتوكول التطبيق المستخدم في هذا الاتصال.

استجابات ناجحة

المصدر: RFC7231 القسم6.2.2

كود الحالة: 200 جيد

تعتمد الحمولة المرسلة في إستجابة 200 على دالة الطلب. بالنسبة للدوال التي تحددها هذه المواصفات، يمكن تلخيص المعنى المقصود للحمولة على النحو التالي:

GET: تم جلب المصدر، ويتم إرساله في جسم (body) الرسالة.

HEAD: ترويسة الكيانات (entities) موجودة في جسم (body) الرسالة.

POST: يتم إرسال المصدر الذي يصف نتيجة الفعل (action) في جسم (body) الرسالة.

TRACE: يحتوي جسم الرسالة على رسالة الطلب كما وردت بواسطة الخادم (server).

كود الحالة: 201 مُنشأ

تم استيفاء الطلب، ونتج عنه إنشاء واحد أو أكثر من المصادر. وعادة ما يتم وصف حمولة الاستجابة 201 وربطها بمصدر أو مصادر منشأة.

كود الحالة: 202 موافق عليه

تم قبول الطلب للمعالجة، ولكن لم يتم الانتهاء من المعالجة. قد يتم أو قد لا يتم البت في الطلب في نهاية المطاف، حيث أنه قد يكون غير مسموح به عند إجراء المعالجة فعلياً.

كود الحالة: 203 معلومات غير موثوقة

نجح الطلب ولكن تم تعديل الحمولة المرفقة بواسطة استجابة 200 جيد من الخادم (server) الأصلي، عن طريق وكيل (proxy) تحويل.

يسمح كود الحالة هذا للوكيل (proxy) بإخطار المتلقين عند تطبيق التحويل حيث أن تلك المعرفة قد تؤثر على القرارات اللاحقة المتعلقة بالمحتوى.

كود الحالة: 204 لايوجد محتوى

نفذ الخادم (server) الطلب بنجاح ولا يوجد محتوى إضافي لإرساله إلى جسم (body) حمولة الاستجابة.

على سبيل المثال، إذا تم إستلام كود حالة 204 إستجابة لطلب PUT واحتوت الاستجابة على ترويسة (header) حقل ETag، فإن طلب PUT قد نجح وقيمة الحقل لـ ETag تحتوي على علامة تمييز الكيان (entity-tag)  للتمثيل الجديد لذلك المصدر المستهدف.

كود الحالة: 205 إعادة تعيين المحتوى

نفذ الخادم الطلب ويرغب في أن يقوم وكيل المستخدم بإعادة تعيين “عرض المستند” الذي تسبب في إرسال الطلب إلى حالته الأصلية كما تم استلامه من الخادم (server) الأصلي.

كود الحالة: 206 محتوى جزئي

يتم إستخدام كود الرد هذا بسبب نطاق الترويسة (header) الذي يرسله العميل (client) لفصل عملية التحميل في جهات متعددة.

رسائل إعادة التوجيه.

كود الحالة: 300 خيارات متعددة

يحتوي المصدر الهدف على أكثر من تمثيل واحد، لكل منها معرّف خاص، كما يتم توفير معلومات حول البدائل بحيث يستطيع المستخدم (أو وكيل المستخدم) تحديد تمثيل مفضل عن طريق إعادة توجيه طلبه إلى واحد أو أكثر من تلك المعرّفات.

كود الحالة: 301 نقل دائم

تم تعيين المصدر الهدف كعنوان URI دائم جديد، كما يجب استخدام أحد عناوين URI أي مراجع مستقبلية لهذا المصدر.

تكون إستجابة 301 قابلة للتخزين بشكل افتراضي، ما لم يتم الإشارة إلى خلاف ذلك من خلال تعريف الدالة أو عناصر تحكم ذاكرة التخزين المؤقت الصريحة.

كود الحالة: 302 موجود

يعني كود الرد هذا عنوان URI  للمصدر المطلوب تم تغييره مؤقتاً. وقد يتم إجراء تغييرات جديدة في الـ URI في المستقبل. ولذلك، ينبغي أن يستخدم العميل (client) نفس هذه البيانات الموحدة في الطلبات المقبلة.

كود الحالة: 303 راجع شيء آخر

أرسل الخادم (server) هذه الاستجابة لتوجيه العميل (client) للحصول على المصدر المطلوب إلى URI آخر مع طلب GET.

كود الحالة: 304 غير معدل

تم استلام طلب GET أو HEAD مشروط، ويمكن أن يؤدي إلى رد 200 جيد، إذا لم يكن الأمر يتعلق بأن الشرط قد تم تقييمه على أساس خاطئ.

كود الحالة: 305 استخدام الوكيل (proxy)

وهذا يعني أن الاستجابة المطلوبة مهملة الآن ويجب الوصول إليها بواسطة وكيل (proxy). كود الرد هذا غير مدعوم بشكل كبير لأسباب أمنية.

كود الحالة: 306 غير مستخدم

لم يعد كود الرد هذا مستخدم، لكنه محجوز فقط حالياً. تم إستخدامه في إصدار سابق من مواصفات HTTP1.1.

كود الحالة: 307 إعادة توجيه مؤقت

المصدر الهدف يقيم مؤقتاً تحت URI مختلف، ووكيل المستخدم يجب أن لا يُغير دالة الطلب إذا قام بإجراء إعادة توجيه تلقائي إلى URI.

هذا له نفس المعنى الدلالي من كود إستجابة HTTP 302 موجود، مع إستثناء أنه يجب ألا يقوم وكيل المستخدم بتغيير دالة HTTP المستخدمة: إذا تم إستخدام POST في الطلب الأول، يجب إستخدام POST في الطلب الثاني.

كود الحالة: 400 طلب سيء

لا يستطيع الخادم (server) معالجة الطلب أو لن يقوم بذلك بسبب وجود خطأ عند العميل (client) (على سبيل المثال، بناء جملة طلب غير صالحة التكوين أو صياغة رسالة طلب غير صحيحة أو توجيه طلب خادع).

كود الحالة: 401 غير مصرح

يتطلب الأمر المصادقة للحصول على الاستجابة المطلوبة. هذا مشابه لكود الحالة 403، ولكن في هذه الحالة، المصادقة ممكنة.

كود الحالة: 402 الدفع مطلوب

كود الاستجابة هذا محجوز للاستخدام في المستقبل.كان الهدف الأولي من إنشاء هذا الكود هو إستخدامه في أنظمة الدفع الرقمية إلا أنه لا يستخدم حالياً.

كود الحالة: 403 محظور

فهم الخادم (server) الطلب ولكنه رفض التصريح به. وهذا يعني أن العميل (client) لا يملك حق الوصول إلى المحتوى، لذلك يرفض الخادم (server) إعطاء استجابة صحيحة.

كود الحالة: 404 غير موجود

تعذر على الخادم العثور على المصدر المطلوب. ربما يكون هذا الكود الأكثر شهرة بسبب تكرار حدوث ذلك في الويب.

كود الحالة: 405 الدالة غير مسموح بها

الدالة التي تم استلامها في سطر الطلب معروفة من قبل الخادم (server)  الأصلي لكنها غير مدعومة من المصدر الهدف.

كود الحالة: 406 غير مقبول

يتم إرسال هذه الاستجابة عندما لا يجد خادم (server)  الويب أي محتوى يتبع المعايير التي يعطيها وكيل المستخدم، وذلك  بعد إجراء مفاوضات حول المحتوى الذي يقوده الخادم (server-driven).

كود الحالة: 407 مصادقة الوكيل مطلوبة

مشابه لكود الحالة 401 غير مصرح به، ولكنه يشير إلى أن العميل (client) يحتاج للمصادقة من أجل إستخدام وكيل (proxy).

كود الحالة: 408 انتهاء مهلة الطلب

لم يتلق الخادم(server) رسالة طلب كاملة خلال الوقت المهيأ له للانتظار.

كود الحالة: 409 تعارض

تعذر إكمال الطلب بسبب وجود تعارض مع الحالة الحالية للمصادر المستهدفة. يستخدم هذا الكود في الحالات التي قد يتمكن فيها المستخدم من حل التعارض وإعادة تقديم الطلب.

كود الحالة: 410 ذهب

سيتم إرسال هذا الرد عند إزالة المحتوى المطلوب من الخادم (server) ومن المحتمل أن يكون هذا الشرط دائماً. إذا كان الخادم الأصلي لا يعرف أو لا يملك أي مرفق لتحديد ما إذا كان الشرط دائماً أم لا، فيجب إستخدام رمز الحالة 404 لم يتم العثور عليه  بدلاً من ذلك.

كود الحالة: 411 الطول مطلوب

رفض الخادم (server) الطلب لأن طول محتوى (content-length) ترويسة الحقل غير معرف ويحتاج الخادم (server) لمعرفة لذلك.

كود الحالة: 412 فشل الشرط المسبق

يسمح كود الاستجابة هذا للعميل (client) بوضع شروط مسبقة في حالة المصدر الحالي (بياناته الحالية وبيانات التعريف)، وبالتالي، منع تطبيق دالة الطلب إذا كان المصدر الهدف في حالة غير متوقعة.

كود الحالة: 413 الحمولة كبيرة جداً

يرفض الخادم (server) معالجة الطلب لأن حمولة الطلب أكبر من رغبة الخادم (server) أو قدرته على المعالجة.

كود الحالة: 414 URI طويل جداً

إذا رفض الخادم (server) الطلب، لأن طول الـ URI المطلوب من قبل العميل (client) أطول من ما يمكنه ترجمته.

كود الحالة: 415 نوع الوسائط غير مدعوم

تنسيق الوسائط للبيانات المطلوبة غير مدعوم من الخادم (server)، لذلك يرفض الخادم الطلب.

كود الحالة: 416 النطاق المطلوب غير قابل للقبول

يتعذر اكمال النطاق الذي يحدده نطاق ترويسة (header) الحقل  في الطلب؛ من الممكن أن يكون النطاق خارج حجم بيانات URI المستهدفة.

كود الحالة: 417 فشل التوقعات

يعني كود الاستجابة هذا أن التوقعات التي تم الإشارة إليها في توقع طلب ترويسة الحقل (request-header field) لا يمكن للخادم استيفاء الطلب.

كود الحالة: 421 طلب خاطئ

تم توجيه الطلب إلى خادم (server) غير قادر على تقديم استجابة. يمكن إرسال هذا بواسطة خادم (server) لم يتم تهيئته لإنتاج رد استجابة لمجموعة من المخططات والمرجعيات التي تم تضمينها في طلب URI.

كود الحالة: 426 ترقية مطلوبة

يرفض الخادم (server) تنفيذ الطلب باستخدام البروتوكول الحالي ولكنه قد يكون مستعدا للقيام بذلك بعد ترقية العميل (client)  إلى بروتوكول مختلف.

كود الحالة: 428 شرط مسبق

يطلب الخادم (server) الأصلي أن يكون الطلب مشروطاً.

كود الحالة: 429 طلبات كثيرة جداً

يتم إنشاء هذا الكود عندما يقوم العميل (client) بإرسال طلبات كثيرة في فترة زمنية محددة.

كود الحالة: 431 طلب ترويسة (header) الحقول كبير جداً

لا يرغب الخادم (server)  في معالجة الطلب لأن ترويسة الحقول (header fields) كبيرة جدا. قد يتم إعادة إرسال الطلب بعد تقليل حجم ترويسة الحقل(header field) في الطلب.

كود الحالة: 451 غير متاح لأسباب قانونية

يطلب المستخدم مصدراً غير قانوني، مثل صفحة ويب خاضعة للرقابة من قبل الحكومة.

استجابات خادم (server) خاطئة

كود الحالة: 500 خطأ في الخادم (server) الداخلي

صادف الخادم (server) حالة غير متوقعة عندما لم يعرف كيف يتعامل مع الطلب ومنع الاستيفاء بالطلب.

كود الحالة: 501 لم يُنفذ

لا يدعم الخادم (server)  الوظائف المطلوبة لاستيفاء بالطلب.

كود الحالة: 502 مدخل خاطئ

تعني إستجابة الخطأ هذه أن الخادم (server)، أثناء عمله كبوابة للحصول على الإستجابة المطلوبة للتعامل مع الطلب، حصل على إستجابة غير صحيحة.

كود الحالة: 503 الخدمة غير متوفرة

يتعذر على الخادم (server) حالياً معالجة الطلب بسبب وجود حمل زائد مؤقت أو صيانة مجدولة، ومن المحتمل تخفيفها بعد مدة معينة.

كود الحالة: 504 انتهاء مهلة البوابة

لم يتلق الخادم (server) رداً في الوقت المناسب من خادم أعلى (upstream server) يحتاج إلى الوصول إليه من أجل إكمال الطلب ، في حين أنه يعمل كبوابة أو وكيل (proxy).

كود الحالة: 505 نسخة HTTP غير مدعومة

لا يدعم الخادم (server) أو يرفض دعم الإصدار الرئيسي من بروتوكول HTTP المستخدم في رسالة الطلب.

كود الحالة: 506 المتغير أيضاً يتفاوض

الخادم (server) لديه خطأ في التهيئة الداخلية:  المصدر المتغير المختار تم تهيئته للدخول في مفاوضات شفافة حول المحتوى نفسه، وبالتالي فهو ليس نقطة نهاية مناسبة في عملية التفاوض.

كود الحالة: 507 تخزين غير كافي

تعذر تنفيذ الدالة على المصدر نظراً لعدم تمكن الخادم من تخزين التمثيل اللازم لإتمام الطلب بنجاح. ويعتبر هذا الشرط مؤقتاً.

كود الحالة: 511 مصادقة الشبكة مطلوبة

يشير كود الحالة 511  إلى أن العميل (client) يحتاج للمصادقة للوصول إلى الشبكة.

اترك تعليق