English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يكون نموذج طلب 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 |
الصفحة المطلوبة تحتاج إلى اسم مستخدم وكلمة مرور | 402 | Payment 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 المحدد |
الجدول أدناه يبين الطرق المستخدمة في HttpServletResponse لضبط رمز الحالة:
S.N. | الطريقة & وصف |
---|---|
1 | public void setStatus ( int statusCode ) يمكن لهذه الطريقة تعيين أي كود حالة. إذا كانت استجابتك تحتوي على كود حالة خاص ووثيقة، تأكد من استدعاء طريقة setStatus قبل العودة إلى PrintWriter لأي محتوى |
2 | public void sendRedirect(String url) هذه الطريقة تنتج استجابة 302، مع إنتاج Location العنوان يخبر URL عن وثيقة جديدة |
3 | public void sendError(int code, String message) هذه الطريقة تضيف كود حالة (عادة 404) ورسالة قصيرة، تلقائيًا إلى وثيقة HTML وتعيد إرسالها إلى العميل |
النموذج التالي سيقوم بإرسال كود خطأ 407 إلى المتصفح، ثم سيعلمك المتصفح "Need authentication!!!".
<html> <head> <title>Setting HTTP Status Code</title> </head> <body> <% // تعيين كود الخطأ وتوضيح السبب response.sendError(407, "Need authentication!!!"); %> </body> </html>
بزيارة صفحات JSP المذكورة أعلاه، ستحصل على النتائج التالية:
يمكنك أيضًا تجربة استخدام كودات حالة HTTP أخرى لمعرفة ما إذا كانت ستنتج أي نتائج غير متوقعة.