English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

كودات حالة HTTP في JSP

يكون نموذج طلب HTTP ورد HTTP متشابهين، ويكون لديه بنية كالتالي:

  • تبدأ بـ سطر الحالة+CRLF (Enter Return)

  • عدد صفر أو أكثر من أسطر الرؤوس+ CRLF

  • سطر فارغ، مثل CRLF

  • رسالة اختيارية مثل ملف، بيانات استعلام، مخرجات استعلام

على سبيل المثال، يبدو رد الخادم للإعداد الأعلى كما يلي:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>

يحتوي سطر الحالة على إصدار HTTP، رمز حالة، ورسالة قصيرة مرتبطة بالرمز

في الجدول أدناه، تم قائمة بالرموز المحتملة للحالة التي قد تعود من الخادم ورسائلها المرتبطة

رمز الحالةرسالةوصف
100 استمرار تم استلام جزء من الطلب فقط من الخادم، لكن إذا لم يتم رفضه من الخادم، فإن العملاء سيستمر في هذا الطلب
101 تبديل البروتوكولات بروتوكول محول الخوادم
200 حسنًا تم تأكيد الطلب
201 تم إنشاء تم تقديم الطلب بكامله، تم إنشاء موارد جديدة
202 مقبول تم قبول الطلب، لكن لم يتم معالجته بالكامل
203 معلومات غير موثوقة  
204 لا يوجد محتوى  
205 إعادة تعيين المحتوى  
206 محتوى جزئي  
300 اختيارات متعددة جدول مرتبط، يمكن لل مستخدم اختيار رابط مرتبط وفتح، الدعم الأقصى هو 5 روابط مرتبطة
301 تحويل دائم تم تحويل الصفحة المطلوبة إلى عنوان URL جديد
302 وجد تم تحويل الصفحة المطلوبة مؤقتًا إلى عنوان URL جديد
303 شاهد الآخر يمكن العثور على الصفحة المطلوبة في عنوان URL مختلف
304 لم يتم تعديل  
305 استخدم وسيط  
306غير مستخدم لم يعد يستخدم هذا رمز الحالة، لكن تم الحفاظ عليه
307 تحويل مؤقت تم تحويل الصفحة المطلوبة مؤقتًا إلى عنوان URL جديد
400 طلب سيء لا يمكن للخادم التعرف على الطلب
401 401 Unauthorized
الصفحة المطلوبة تحتاج إلى اسم مستخدم وكلمة مرور 402Payment Required
لا يمكن استخدام هذا رمز الحالة حاليًا 403 Forbidden
يمنع الوصول إلى الصفحة المطلوبة 404 Not Found
لا يمكن للخادم العثور على الصفحة المطلوبة 405 Method Not Allowed
الطريقة المحددة في الطلب غير مسموح بها 406 Not Acceptable
يرفض الخادم إنشاء استجابة يمكن أن لا تقبلها العميل Proxy Authentication Required إذا قبلت الطلب، يجب إثبات هوية وسيط
408 Request Timeout تجاوز وقت الطلب للوقت الذي يمكن للخادم أن ينتظره، تم قطع الاتصال
409 Conflict يوجد تضارب في الطلب
410 Gone لم تعد الصفحة المطلوبة متاحة
411 Length Required "Content-Length" لم يتم تعريفه، يرفض الخادم استقبال الطلب
412 Precondition Failed تم تقييم شرط الطلب من قبل الخادم كغير صحيح
413 Request Entity Too Large يرفض الخادم استقبال الطلب لأن حجم الجسم المطلوب كبير جدًا
414 Request-url Too Long يرفض الخادم استقبال الطلب لأن عنوان الطلب طويل جدًا. يحدث هذا غالبًا عند تحويل كميات كبيرة من معلومات الاستعلام مع طلب "POST" إلى "GET"
415 Unsupported Media Type يرفض الخادم استقبال الطلب لأن نوع وسيلة الإعلام غير مدعوم
417 فشل التوقعات  
500 Internal Server Error الطلب غير كامل، الخادم واجه حالة غير متوقعة
501 Not Implemented الطلب غير كامل، الخادم لا يقدم الخدمة المطلوبة
502 Bad Gateway الطلب غير كامل، الخادم استلم استجابة غير صالحة من الخادم المقدم
503 Service Unavailable الطلب غير كامل، الخادم أعد إعادة التشغيل أو إغلاق مؤقت
504 Gateway Timeout انتهاء وقت جسر
505 إصدار HTTP غير مدعوم الخادم لا يدعم إصدار HTTP المحدد

طرق ضبط رمز حالة HTTP

الجدول أدناه يبين الطرق المستخدمة في HttpServletResponse لضبط رمز الحالة:

S.N.الطريقة & وصف
1public void setStatus ( int statusCode ) يمكن لهذه الطريقة تعيين أي كود حالة. إذا كانت استجابتك تحتوي على كود حالة خاص ووثيقة، تأكد من استدعاء طريقة setStatus قبل العودة إلى PrintWriter لأي محتوى
2public void sendRedirect(String url) هذه الطريقة تنتج استجابة 302، مع إنتاج Location العنوان يخبر URL عن وثيقة جديدة
3public void sendError(int code, String message) هذه الطريقة تضيف كود حالة (عادة 404) ورسالة قصيرة، تلقائيًا إلى وثيقة HTML وتعيد إرسالها إلى العميل

مثال على برنامج حالة HTTP

النموذج التالي سيقوم بإرسال كود خطأ 407 إلى المتصفح، ثم سيعلمك المتصفح "Need authentication!!!".

<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
   // تعيين كود الخطأ وتوضيح السبب
   response.sendError(407, "Need authentication!!!");
%>
</body>
</html>

بزيارة صفحات JSP المذكورة أعلاه، ستحصل على النتائج التالية:

يمكنك أيضًا تجربة استخدام كودات حالة HTTP أخرى لمعرفة ما إذا كانت ستنتج أي نتائج غير متوقعة.