נציין תחילה שמכיוון שחלק מהדפדפנים עשויים לתמוך רק
ב- HTTP 1.0 מומלץ לבדוק את גרסת הפרוטוקול (באמצעות
request.getRequest.Protocol) לפני שליחת הקודים החדשים
המוגדרים ב-HTTP 1.1.
כעת נתאר את קודי הסטאטוס הזמינים ב-HTTP 1.1
(מפרט HTTP 1.1 המלא
נמצא ב-RFC 2616
הזמין ב- http://www.rfc-editor.org
.)
קודי הסטאטוס נחלקים ל - 5 קטגוריות כלליות:
100-199 : קודים אלו הינם אינפורמטיביים ומורים
ללקוח להגיב בפעולה כלשהיא.
200-299 : ערכים בתחום הזה מציינים שהבקשה
הצליחה.
300-399
: ערכים בתחום הזה משמשים עבור קבצים
שהועברו, וכוללים את הכותרת Location המצביעה על
הכתובת החדשה.
400-499 : ערכים בתחום הזה מצביעים על שגיאת
לקוח.
500-599 : ערכים בתחום הזה מציינים שגיאות
שרת.
משמעות ה-
HTTP status codes הנפוצים:
100
SC_CONTINUE
*
כאשר השרת מקבל את כותרת הדרישה Expect ובה הערך
100-continue
המשמעות היא שהלקוח
שואל האם הוא יכול לצרף מסמך לדרישה העוקבת. במקרה זה השרת יחזיר תגובה עם סטאטוס
100
(SC_CONTINUE ) כדי לומר ללקוח להמשיך, או עם
סטאטוס 417
(Expectation Fail) המודיע לדפדפן שהמסמך לא
התקבל.
101 SC_SWITCHING_PROTOCOLS
*
קוד זה מציין שהשרת יענה לכותרת Upgrade
וישנה את הפרוטוקול.
200
SC_OK
משמעותו שהכול תקין. המסמך יבוא בעקבות בקשות
GET ו-POST. סטאטוס זה הינו ברירת מחדל של
Servlets.
201
SC_CREATED
קוד זה מציין שהשרת יצר מסמך חדש כתגובה לבקשה.
הכותרת Location אמורה לספק את כתובת
ה-URL
של המסמך החדש.
202
SC_ACCEPTED
מודיע ללקוח שהבקשה מטופלת אך התהליך לא הסתיים
עדיין.
203
SC_NON_AUTHORITATIVE_INFORMATION
*
קוד זה מציין שהמסמך מוחזר בדרך הרגילה אך מס' כותרות
תגובה עלולות להיות שגויות מכיוון שנעשה שימוש בעותק מסמך.
204
SC_NO_CONTENT
קוד זה מורה לדפדפן להמשיך להציג את המסמך הקודם
כיוון שהמסמך החדש אינו זמין. התנהגות זו יעילה אם המשתמש הוריד קודם לכן דף ע"י
לחיצה על "Reload" והשרת יכול לקבוע שהדף הקודם עדיין
עדכני.
205
SC_RESET_CONTENT *
משמעות ערך זה היא שאין כל מסמך חדש אך על הדפדפן
להגדיר מחדש
את תצוגת המסמך. קוד סטאטוס זה משמש לאלץ את הדפדפנים לנקות שדות טופס.
300
SC_MULTIPLE_CHOICES
ערך זה מציין שהמסמך הנדרש עשוי להימצא במס' מקומות
שיירשמו
במסמך המוחזר. במידה ולשרת יש מיקום מועדף, עליו לציינו בכותרת
התגובה
Location.
301 SC_MOVED_PERMANENTLY
סטאטוס זה מציין שהדף הנדרש נמצא במקום אחר. כתובת
URL חדשה מצוינת בכותרת Location.
דפדפנים אמורים לעבור אוטומטית לכתובת החדשה.
302
C_MOVED_TEMPORARILY
ערך זה דומה ל- 301 אלא שכתובת
URL
הניתנת בכותרת Location הינה מקום חליפי זמני. משום שקוד
סטאטוס זה הינו בשימוש נפוץ, קיים method מיוחד עבורו: sendRedirect.
response.sendRedirect(url);
|
מחליף
את :
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("location", url);
|
הדפדפנים אמורים לעקוב אוטומטית אחרי ההפניה מחדש רק אם הבקשה המקורית הייתה
GET.
303
SC_SEE_OTHER*
סטאטוס זה דומה ל- 301 ו- 302 מלבד
כאשר הדרישה המקורית הייתה POST, המסמך החדש (המצוין בכותרת
Location) ישלח באמצעות GET.
304
SC_NOT_MODIFIED
כאשר ללקוח יש מסמך מוטמן הוא יכול לבצע דרישה מותנית ע"י אספקת הכותרת
If-Modified-Since, כדי לציין שברצונו במסמך רק בתנאי שהוא שונה
מתאריך מסוים. הערך 304 משמעותו שהגרסה המוטמנת הינה מעודכנת ועל הלקוח להשתמש בה,
אם לא כך על השרת להחזיר את המסמך הנדרש עם קוד הסטאטוס הרגיל 200. Servlets
אינם אמורים בד"כ להגדיר ישירות את קוד סטאטוס זה אולם עליהם ליישם את ה-getLastModified
method ולהותיר לברירת המחדל של service method
לנהל דרישות מותנות בהתבסס על תאריך שינוי זה.
400 SC_BAD_REQUEST
סטאטוס זה מציין שיש תחביר שגוי בבקשת הלקוח.
401
SC_UNAUTHORIZED
מציין שהלקוח ניסה לגשת לדף מוגן סיסמא ללא מידע מזהה
מתאים בכותרת AUTHORIZATION.
403
SC_FORBIDDEN
משמעותו שהשרת מסרב לספק את המסמך בלא להתחשב בהרשאה.
404
SC_NOT_FOUND
מודיע ללקוח כי לא נמצא המסמך בכתובת המצוינת. תגובה
זו היא כה נפוצה שקיים עבורה method מיוחד:
יתרונו של
method זה על פני
setStatus הוא, שבמקרה של sendError
השרת
מייצר אוטומטית דף שגיאה המציג את הודעת השגיאה. כברירת מחדל
InternetExplorer 5 מתעלם מדפי השגיאה הנוצרים ע"י השרת.
405
SC_METHOD_NOT_ALLOWED*
מציין שסוג הבקשה
(GET,POST,HEAD,PUT
וכו') אינה מורשית עבור מקום מסוים זה.
406
SC_NOT_ACCEPTABLE*
מציין שהמסמך הנדרש הינו בעל סוג MIME
שאינו תואם לסוגים המצוינים
ע"י הלקוח בכותרת
Accept.
408
SC_REQUEST_TIME_OUT *
משמעות קוד זה היא שארך ללקוח זמן רב מדי לסיים את
משלוח הדרישה.
410
SC_GONE *
מודיע ללקוח שהמסמך המבוקש נעלם ולא
ידועה כתובתו הבאה. 410 שונה מ- 404 בכך שידוע שהמסמך נעלם לתמיד, לא רק אינו נגיש מסיבות לא
ידועות כפי שזה בסטאטוס 404.
415
SC_UNSUPPORTED_MEDIA_TYPE*
משמעותו שלדרישה מצורף מסמך מסוג שהשרת אינו יודע
כיצד לטפל בו.
500 SC_INTERNAL_SERVER_ERROR
לעיתים קרובות זוהי תוצאה של תוכניות CGI
או Servlets קורסים או כאלה המחזירים כותרות בעלות תבנית
שגויה.
501
SC_NOT_IMPLEMENTED
סטאטוס זה מודיע ללקוח שהשרת אינו תומך בבקשה. לדוגמא
כאשר הלקוח שולח בקשת PUT שהשרת אינו תומך בו.
503 SC_SERVICE_UNAVAILABLE
קוד זה מציין שהשרת אינו יכול להגיב עקב בעיות תחזוקה
או עומס יתר. לדוגמא כאשר מסד נתונים הקשור לביצוע הבקשה הינו מלא.
505
SC_HTTP_VERSION_NOT_SUPPORTED*
קוד זה משמעותו היא שהשרת אינו תומך בגרסת
HTTP המצוינת בשורת הבקשה .
* קוד סטאטוס זה הינו חדש ב-HTTP 1.1.
|