משתמש:גבריאל לינוי 2007/רשימת קודים במצב HTTP

קוד מצב HTTP ( אנגלית קוד מצב HTTP ) הוא חלק מהשורה הראשונה של תגובת השרת עבור בקשות באמצעות פרוטוקול HTTP . זהו מספר עשרוני בן שלוש ספרות. הספרה הראשונה מציינת את מחלקת המצב . קוד התגובה מלווה בדרך כלל ביטוי הסבר מופרד ברווח באנגלית, המסביר לאדם את הסיבה לתשובה כזו. דוגמאות:

  • 201 נוצר .
  • 401 לא מורשה .
  • 507 אחסון לא מספיק .

הלקוח לומד מקוד התגובה על תוצאות בקשתו וקובע אילו פעולות לנקוט בהמשך. ערכת קודי המצב היא תקן והם מתוארים במסמכי ה- RFC הרלוונטיים. הכנסת קודים חדשים צריכה להיעשות רק לאחר התייעצות עם IETF . עם זאת, ישנם שני קודים ידועים בשימוש שאינם מוזכרים ב-RFC: 449 Retry With . כמו כן מוזכר ביטוי ההסבר "השב עם" במפרט עבור WebDAV ברשת המפתחים של מיקרוסופט, שהוצג על ידי מיקרוסופט, ו 509 Bandwidth Limit Exceeded, שהוצג ב- cPanel .

ייתכן שהלקוח אינו יודע את כל קודי המצב, אך עליו להגיב בהתאם למחלקת הקוד. יש כרגע חמישה מחלקות של קודי סטטוס.

שרת האינטרנט של שירותי מידע באינטרנט בקובצי היומן שלו, בנוסף לקודי המצב הסטנדרטיים, משתמש בתתי-קודים, כותב אותם בנקודה אחרי הקודי הראשי. יחד עם זאת, תת-קוד זה אינו ממוקם בתגובות מהשרת - הוא נחוץ על ידי מנהל השרת כדי שיוכל לקבוע בצורה מדויקת יותר את מקורות הבעיות.

רשימת סקירה כללית עריכה

להלן רשימה כללית של כל קודי התגובה המתוארים במאמר זה:

 
תרשים החלטה על כותרת שרת אינטרנט
 
סטטיסטיקות קוד תגובה שנוצרו על ידי מנתח היומנים של Webalizer

תיאור הקודים עריכה

מידע עריכה

מחלקה זו מכילה קודים המודיעים על תהליך השידור. כאשר עובדים באמצעות פרוטוקול גרסה 1.0, יש להתעלם מהודעות עם קודים כאלה. בגרסה 1.1, הלקוח חייב להיות מוכן לקבל את מחלקת ההודעות הזו כתגובה רגילה, אבל השרת לא צריך לשלוח כלום. ההודעות מהשרת עצמן מכילות רק את שורת ההתחלה של התגובה ואם נדרש, כמה שדות כותרת ספציפיים לתגובה. שרתי פרוקסי צריכים לשלוח הודעות כאלה הלאה מהשרת ללקוח.

  • 100 המשך - השרת מרוצה מהמידע הראשוני על הבקשה, הלקוח יכול להמשיך לשלוח כותרות. הוצג ב-HTTP/1.1.
  • 101 מיתוג פרוטוקולים - השרת ממלא את בקשת הלקוח ומחליף פרוטוקולים כמפורט בשדה הכותרת Upgrade . השרת שולח כותרת תגובת Upgrade המציינת את הפרוטוקול שאליו עבר. הוצג ב-HTTP/1.1.
  • 102 עיבוד - הבקשה התקבלה, אך ייקח זמן רב לטפל בה. משמש את השרת כדי למנוע מהלקוח לסיים את החיבור עקב פסק זמן. הלקוח, עם קבלת תגובה כזו, חייב לאפס את הטיימר ולהמתין לפקודה הבאה במצב רגיל. הופיע ב- WebDAV .
  • 103 רמזים מוקדמים - משמש להחזרת חלק מהכותרות מוקדם כאשר לא ניתן ליצור כותרות תגובה מלאות במהירות.

הצלחה עריכה

הודעות מכיתה זו מודיעות על מקרים של קבלה ועיבוד מוצלחים של בקשת לקוח. בהתאם לסטטוס, השרת עשוי לשלוח גם כותרות וגוף הודעה.

  • 200 בסדר - בקשה מוצלחת. אם נתון כלשהו התבקש על ידי הלקוח, הוא נמצא בכותרת ו/או בגוף ההודעה. הוצג ב-HTTP/1.0.
  • 201 נוצר - משאב חדש נוצר כתוצאה מבקשה מוצלחת. השרת עשוי לציין את הכתובות (ייתכן שיהיו יותר מאחת) של המשאב שנוצר בגוף התגובה, כאשר הכתובת המועדפת מצוינת בכותרת Location . מומלץ לשרת לציין בגוף התגובה את מאפייני המשאב שנוצר והכתובת שלו, פורמט גוף התגובה נקבע לפי הכותרת Content-Type . בעת עיבוד בקשה, יש ליצור משאב חדש לפני שליחת התגובה ללקוח, אחרת יש להשתמש בתגובת 202 . הוצג ב-HTTP/1.0.
  • 202 התקבלה - הבקשה התקבלה לטיפול אך לא הושלמה. הלקוח לא צריך להמתין לשידור הסופי של ההודעה, מכיוון שניתן להתחיל תהליך ארוך מאוד. הוצג ב-HTTP/1.0.
  • 203 Non-Autoritative Information - בדומה לתגובת 200, אך במקרה זה המידע המועבר לא נלקח מהמקור הראשי (גיבוי, שרת אחר וכו'). ד. ) ולכן עשוי להיות לא רלוונטי. הוצג ב-HTTP/1.1.
  • 204 ללא תוכן - השרת עיבד את הבקשה בהצלחה, אך רק כותרות נשלחו בתגובה ללא גוף הודעה. הלקוח אינו חייב לעדכן את תוכן המסמך, אך רשאי להחיל עליו את המטא נתונים שהתקבלו. הוצג ב-HTTP/1.0.
  • 205 איפוס תוכן - השרת מחייב את הלקוח לאפס את הנתונים שהזין המשתמש. השרת אינו משדר את גוף ההודעה, ואין צורך לעדכן את המסמך. הוצג ב-HTTP/1.1.
  • 206 תוכן חלקי - השרת השלים בהצלחה בקשת GET חלקית, והחזיר רק חלק מההודעה. בכותרת Content-Range, השרת מציין את טווחי הבתים של התוכן. כאשר עובדים עם תגובות כאלה, יש להקדיש תשומת לב מיוחדת לאחסון במטמון. הוצג ב-HTTP/1.1. (
  • 207 Multi-Status - השרת מעביר תוצאות של מספר פעולות עצמאיות בבת אחת. הם ממוקמים בגוף ההודעה עצמו כמסמך XML עם אובייקט multistatus -סטטוס. לא מומלץ למקם סטטוסים מסדרת 1xx באובייקט זה בגלל חוסר המשמעות והיתירות. הופיע ב- WebDAV .
  • 208 כבר דווחו - חברים מחייבי DAV כבר נרשמו בחלק הקודם (מולטי-סטטוס) של התגובה ואינם נכללים שוב.
  • 226 IM בשימוש - כותרת A-IM מהלקוח התקבלה בהצלחה והשרת מחזיר את התוכן עם הפרמטרים שצוינו. הוצג ב- RFC 3229 כדי להגדיל את פרוטוקול HTTP עם תמיכה בקידוד דלתא .

שינוי הפניה עריכה

על פי התקנים העדכניים ביותר, הלקוח יכול להפנות רק מבלי לשאול את המשתמש אם המשאב השני מתבקש בשיטת GET או HEAD [1] . מפרטים קודמים אמרו שכדי להימנע מנסיעות הלוך ושוב, יש לשאול את המשתמש לאחר ההפניה החמישית ברציפות . עבור כל ההפניות מחדש, אם שיטת הבקשה לא הייתה HEAD, יש לכלול הודעת היפרטקסט קצרה עם כתובת היעד בגוף התגובה, כך שבמקרה של שגיאה המשתמש יוכל לנווט בעצמו.

ההתנהגות של לקוחות עבור הפניות מחדש שונות מתוארת בטבלה:

סטטוס תגובה שמירה במטמון

(cache)

אם השיטה אינה GET או HEAD
301 Moved Permanently אתה יכול כרגיל. בקש מהמשתמש אישור ובקש משאב אחר בשיטה המקורית.
307 Temporary Redirect אפשרי רק אם צוינה הכותרת Cache-Control או Expires .
302 Found (HTTP/1.1)



302 Moved Temporarily (HTTP/1.0)
303 See Other זה אסור. קפוץ אוטומטית, אך בשיטת GET .
  • 300 אפשרויות מרובות - ב-URI שצוין, קיימות מספר אפשרויות לספק משאב לפי סוג MIME, לפי שפה או לפי מאפיינים אחרים. השרת שולח רשימה של חלופות עם ההודעה, מה שמאפשר את הבחירה להתבצע באופן אוטומטי על ידי הלקוח או המשתמש. הוצג ב-HTTP/1.0.
  • 301 הועבר לצמיתות - המסמך המבוקש הועבר לצמיתות ל-URI החדש שצוין בשדה כותרת Location . חלק מהלקוחות מתנהגים בצורה לא נכונה בעת עיבוד קוד זה. הוצג ב-HTTP/1.0.
  • 302 נמצא, 302 הועבר זמנית - המסמך המבוקש זמין באופן זמני ב-URI אחר, המצוין בכותרת בשדה Location . ניתן להשתמש בקוד זה, למשל, במשא ומתן על תוכן מונחה שרת . כמה [ מה? ] לקוחות מתנהגים באופן שגוי בעת עיבוד קוד זה. הוצג ב-HTTP/1.0.
  • 303 ראה אחר - יש לבקש את המסמך ב-URI המבוקש בכתובת בשדה Location של הכותרת בשיטת GET, למרות שהראשון התבקש בשיטה אחרת. קוד זה הוצג יחד עם קוד 307 כדי למנוע אי בהירות כך שהשרת יוכל להיות בטוח שהמשאב הבא יתבקש בשיטת GET . לדוגמה, לדף אינטרנט יש שדה להזנת טקסט לניווט וחיפוש מהירים. לאחר הזנת הנתונים, הדפדפן מגיש בקשה בשיטת POST, כולל הטקסט שהוזן בגוף ההודעה. אם נמצא מסמך עם הכותרת שהוזנה, השרת מגיב בקוד 303, המציין את כתובתו הקבועה בכותרת Location . אז מובטח שהדפדפן יבקש זאת בשיטת GET כדי לקבל את התוכן. אחרת, השרת פשוט יחזיר את דף תוצאות החיפוש ללקוח. הוצג ב-HTTP/1.1.
  • 304 לא השתנה - השרת מחזיר קוד זה אם הלקוח ביקש את המסמך בשיטת GET, השתמש בכותרת If-Modified-Since או If-None-Match, והמסמך לא השתנה מהזמן שצוין. במקרה זה, הודעת השרת לא תכיל גוף. הוצג ב-HTTP/1.0.
  • 305 השתמש בפרוקסי - הבקשה למשאב המבוקש חייבת להיעשות דרך שרת פרוקסי ש-URI שלו מצוין בשדה כותרת Location . קוד תגובה זה יכול לשמש רק שרתי HTTP מקור (לא פרוקסי). הוצג ב-HTTP/1.1.
  • 306 (שמור) - בשימוש בגרסאות קודמות של המפרט, קוד התגובה שמור כרגע. מוזכר ב- RFC 2616 (עדכון HTTP/1.1). לפי טיוטות מוקדמות, משמעות הקוד הייתה Switch Proxy, שאומר ללקוח לשנות את ה-proxy בשימוש לזה שצוין על ידי השרת בכותרת התגובה .
  • 307 הפניה זמנית - המשאב המבוקש זמין לזמן קצר ב-URI אחר שצוין בשדה כותרת Location . אסור לשנות את שיטת הבקשה (GET/POST). לדוגמה, יש לשלוח בקשת POST ל-URI חדש באמצעות אותה שיטת POST. קוד זה הוצג יחד עם 303 במקום 302 כדי למנוע אי בהירות. הוצג ב- RFC 2616 (עדכון HTTP/1.1).
  • 308 הפניה קבועה - המשאב המבוקש הועבר לצמיתות ל-URI החדש שצוין בשדה כותרת Location . אסור לשנות את שיטת הבקשה (GET/POST). לדוגמה, יש לשלוח בקשת POST ל-URI חדש באמצעות אותה שיטת POST. קוד זה הוצג במקום 301 כדי למנוע אי בהירות. הוצג ב- RFC 7238 ( RFC 7538 ).

מחלקת הקוד 4xx נועדה לציין שגיאות בצד הלקוח. כאשר משתמשים בכל השיטות מלבד HEAD, על השרת להחזיר הסבר היפרטקסט עבור המשתמש בגוף ההודעה.

 
השרת החזיר שגיאה 403 בעת ניסיון לגלוש בספריית "cgi-bin", שהגישה אליה נדחתה
  • 500 שגיאת שרת פנימית - כל שגיאת שרת פנימית שאינה מכוסה על ידי שאר שגיאות הכיתה. הוצג ב-HTTP/1.0.
  • 501 לא מיושם - השרת אינו תומך ביכולות הנדרשות לעיבוד הבקשה. תגובה טיפוסית למקרים בהם השרת לא מבין את השיטה שצוינה בבקשה. אם השיטה ידועה לשרת, אך היא אינה ישימה למשאב זה, יש להחזיר תגובת <code id="mwAs8">405</code> . הוצג ב-HTTP/1.0.
  • 502 Bad Gateway - השרת, שפועל כשער או שרת פרוקסי, קיבל הודעת תגובה לא חוקית משרת במעלה הזרם. הוצג ב-HTTP/1.0.
  • 503 שירות לא זמין - השרת אינו מסוגל באופן זמני לעבד בקשות מסיבות טכניות (תחזוקה, עומס ועוד). בשדה הכותרת Retry-After, השרת עשוי לציין זמן שאחריו מומלץ ללקוח לנסות שוב את הבקשה. למרות שזה נראה מובן מאליו לסגור מיד את החיבור בזמן עומס, ייתכן שיהיה יעיל יותר להגדיר את השדה Retry-After לערך גדול כדי להפחית את התדירות של בקשות מיותרות. הוצג ב-HTTP/1.0.
  • 504 Gateway Timeout - השרת שפועל כשער או פרוקסי לא חיכה לתגובה מהשרת במעלה הזרם כדי להשלים את הבקשה הנוכחית. הוצג ב-HTTP/1.1.
  • גרסה 505 HTTP לא נתמכת - השרת אינו תומך או מסרב לתמוך בגרסת פרוטוקול ה-HTTP שצוינה בבקשה. הוצג ב-HTTP/1.1.
  • וריאנט 506 גם מנהל משא ומתן - כתוצאה מתצורה שגויה, הגרסה שנבחרה מצביעה על עצמה, עקב כך תהליך הקישור מופרע. נִסיוֹנִי. הוצג ב- RFC 2295 כדי להגביר את פרוטוקול HTTP עם טכנולוגיית Transparent Content Negotiation .
  • 507 לא מספיק אחסון - אין מספיק מקום להשלמת הבקשה הנוכחית. ייתכן שהבעיה היא זמנית. הוצג ב- WebDAV .
  • 508 לולאה זוהתה - הפעולה בוטלה ל. השרת נתקל בלולאה אינסופית בזמן עיבוד בקשה ללא הגבלת עומק. הוצג ב- WebDAV .
    • 508 Resource Limit Reached הוא גרסה של שגיאת 508 ב- CloudLinux שמתרחשת כאשר מגיעים למגבלות האירוח [2] .
  • 509 מגבלת רוחב פס חריגה - משמש כאשר אתר האינטרנט חורג ממגבלת צריכת התנועה שהוקצה לו. במקרה זה, על בעל האתר ליצור קשר עם ספק האירוח שלו. נכון לעכשיו, קוד זה אינו מתואר באף RFC ומשמש רק את המודול "bw/limited" הכלול בלוח הבקרה של אירוח cPanel, שם הוא הוצג.
  • 510 Not Extended - לשרת אין הרחבה שהלקוח רוצה להשתמש בה. השרת עשוי לשלוח מידע אופציונלי על הרחבות הזמינות לו. הוצג ב- RFC 2774 כדי להגדיל את פרוטוקול HTTP עם תמיכה בהרחבות.
  • 511 אימות רשת נדרש - תגובה זו לא נשלחת על ידי השרת שאליו נועדה הבקשה, אלא על ידי שרת מתווך - למשל, שרת הספק - אם הלקוח חייב להיכנס לרשת תחילה, למשל, להזין סיסמה עבור נקודת גישה לאינטרנט בתשלום. ההנחה היא שגוף התגובה יחזיר אליו טופס הרשאה אינטרנטי או הפניה מחדש. הוצג בטיוטה של RFC 6585 .
  • 520 שגיאה לא ידועה, מתרחשת כאשר שרת ה- CDN לא הצליח לעבד את שגיאת שרת האינטרנט; קוד CloudFlare מותאם אישית.
  • 521 Web Server Is Down, מתרחש כאשר חיבורי CDN נדחים על ידי שרת האינטרנט; קוד CloudFlare מותאם אישית.
  • 522 Connection Timed Out, מתרחש כאשר ה- CDN לא הצליח להתחבר לשרת האינטרנט; קוד CloudFlare מותאם אישית.
  • 523 Origin Is Unreachable, מתרחש כאשר לא ניתן להגיע לשרת האינטרנט; קוד CloudFlare מותאם אישית.
  • 524 פסק זמן התרחש, מתרחש כאשר הזמן הקצוב לחיבור בין שרת ה- CDN לשרת האינטרנט. קוד CloudFlare מותאם אישית.
  • 525 SSL Handshake Failed, מתרחש כאשר לחיצת היד SSL בין שרת CDN לשרת האינטרנט נכשלת; קוד CloudFlare מותאם אישית.
  • 526 אישור SSL לא חוקי, מתרחש כאשר לא ניתן לאמת את אישור ההצפנה של שרת האינטרנט; קוד CloudFlare מותאם אישית.
חומרים נוספים
  • "Web Distributed Authoring and Versioning (WebDAV) Protocol: Client Extensions" (באנגלית). Microsoft. 2007-03-14. אורכב מ-המקור ב-2012-02-17. נבדק ב-2009-07-30. {{cite web}}: More than one of |archiveurl= and |archive-url= specified (עזרה)
  • {{RFC|2324}} Informational «[rfc:2774 Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)]»(באנגלית) (с англ. «Гипертекстовый протокол управления кофеваркой (HTCPCP/1.0)»); IETF, 1 апреля 1998; Masinter L..
  • KB 318380 "Коды состояния служб IIS" (ברוסית). Microsoft. 2007-12-04. אורכב מ-המקור ב-2012-02-17. נבדק ב-2010-01-16. {{cite web}}: More than one of |archiveurl= and |archive-url= specified (עזרה)
  • [обработка кодов состояния HTTP роботами Яндекса "Справочник по кодам статуса HTTP"]. Яндекс. נבדק ב-2018-05-02. {{cite web}}: |archive-url= מצריך גם |archive-date= (עזרה); Check |archiveurl= value (עזרה) 
  1. ^ "RFC-2616 «10.3 Redirection 3xx» (стр. 61)". אורכב מ-המקור ב-2011-03-07. נבדק ב-2009-07-29.
  2. ^ "Resource Limit Reached". www.cloudlinux.com. אורכב מ-המקור ב-2021-05-15. נבדק ב-2022-06-21.