تتشابه تنسيقات طلبات HTTP واستجابات HTTP، ولكل منهما البنية التالية:
البدء بسطر الحالة + CRLF (سطر الإرجاع وتغذية السطر)
وحدة رأس صفر أو متعددة الخطوط + CRLF
سطر فارغ، مثل CRLF
نص الرسالة الاختياري مثل الملف وبيانات الاستعلام ومخرجات الاستعلام
على سبيل المثال، يبدو رأس استجابة الخادم كما يلي:
HTTP/1.1 200 OKContent-Type: text/htmlHeader2: ...HeaderN: ... (سطر فارغ)<!doctype ...><html><head>...</head><body> ... </body></html>
يحتوي سطر الحالة على إصدار HTTP ورمز الحالة والرسالة القصيرة المقابلة لرمز الحالة.
يسرد الجدول التالي رموز حالة 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 | غير مصرح به | تتطلب الصفحة المطلوبة اسم مستخدم وكلمة مرور |
402 | الدفع مطلوب | لا يمكن استخدام رمز الحالة هذا بعد |
403 | مُحرَّم | الوصول إلى الصفحة المطلوبة محظور |
404 | لم يتم العثور عليه | لا يمكن للخادم العثور على الصفحة المطلوبة |
405 | الطريقة غير مسموح بها | الطريقة المحددة في الطلب غير مسموح بها |
406 | غير مقبول | يمكن للخادم فقط إنشاء استجابة غير مقبولة للعميل |
407 | مطلوب مصادقة الوكيل | يجب مصادقة الخادم الوكيل قبل تقديم الطلبات |
408 | مهلة الطلب | تجاوز وقت الطلب الوقت الذي يمكن أن ينتظره الخادم، وتم قطع الاتصال. |
409 | صراع | هناك تعارض في الطلب |
410 | ذهب | الصفحة المطلوبة لم تعد متوفرة |
411 | الطول مطلوب | لم يتم تحديد "طول المحتوى"، رفض الخادم قبول الطلب |
412 | فشل الشرط المسبق | تم تقييم الشرط المسبق المطلوب بواسطة الخادم على أنه خطأ |
413 | كيان الطلب كبير جدًا | رفض الخادم قبول الطلب لأن الكيان المطلوب كان كبيرًا جدًا. |
414 | عنوان URL للطلب طويل جدًا | رفض الخادم قبول الطلب لأن عنوان URL طويل جدًا. غالبًا ما يظهر قدر كبير من معلومات الاستعلام عند تحويل طلب "POST" إلى طلب "GET". |
415 | نوع الوسائط غير مدعوم | رفض الخادم قبول الطلب لأن نوع الوسائط غير مدعوم |
417 | فشل التوقع | |
500 | خطأ في الخادم الداخلي | كان الطلب غير مكتمل وواجه الخادم حالة غير متوقعة. |
501 | لم يتم التنفيذ | الطلب غير مكتمل والخادم لا يوفر الوظائف المطلوبة |
502 | بوابة سيئة | كان الطلب غير مكتمل وتلقى الخادم استجابة غير صالحة من الخادم الرئيسي. |
503 | الخدمة غير متوفرة | الطلب غير مكتمل وتم إعادة تشغيل الخادم أو إيقاف تشغيله مؤقتًا. |
504 | مهلة البوابة | مهلة البوابة |
505 | إصدار HTTP غير مدعوم | الخادم لا يدعم إصدار HTTP المحدد |
يسرد الجدول التالي الطرق المستخدمة لتعيين رموز الحالة في فئة HttpServletResponse:
SN | الطريقة والوصف |
---|---|
1 | public void setStatus (intstatusCode) يمكن لهذه الطريقة تعيين أي رمز حالة. إذا كانت إجابتك تحتوي على رمز حالة خاص ومستند، فتأكد من استدعاء الأسلوب setStatus قبل إرجاع أي شيء باستخدام PrintWriter |
2 | public void sendRedirect(String url) تنشئ هذه الطريقة استجابة 302 ورأس موقع لإخبار عنوان URL بمستند جديد. |
3 | public void sendError(int code, String message) تقوم هذه الطريقة تلقائيًا بإدراج رمز الحالة (عادةً 404) ورسالة قصيرة في مستند HTML وإرسالها مرة أخرى إلى العميل. |
سيرسل المثال التالي رمز خطأ 407 إلى المتصفح، وسيخبرك المتصفح "بحاجة إلى المصادقة !!!".
<html><head><title>إعداد رمز حالة HTTP</title></head><body><% // قم بتعيين رمز الخطأ وشرح السبب Response.sendError(407, "Need Authentication!!!" ) %></body></html>
بالدخول إلى صفحة JSP أعلاه، سوف تحصل على النتائج التالية:
يمكنك أيضًا تجربة استخدام رموز الحالة الأخرى لمعرفة ما إذا كنت ستحصل على أي نتائج غير متوقعة.