קוד מצב של HTTP

בתגובה לבקשת HTTP ‏(Hypertext Transfer Protocol) של לקוח מחזיר השרת תשובת HTTP המכילה קוד מצב המציין את התוצאה של ניסיון השרת למלא את הבקשה שנשלחה. הקוד מורכב ממספר תלת-ספרתי והסבר טקסטואלי קצר על משמעותו. המספרים מחולקים ל-5 מחלקות, בהתאם לספרה הראשונה שלהם: 1xx – ההודעה מכילה מידע בלבד. 2xx – הבקשה ששלח הלקוח בוצעה בהצלחה על ידי השרת, והתשובה מכילה את מה שהשרת נתבקש לשלוח בהתאם לשיטת הבקשה. 3xx – הבקשה פוענחה בהצלחה, אך מסיבות כלשהן התשובה אינה כוללת את האובייקט המבוקש (למשל, משום שהעמוד מפנה אוטומטית לעמוד אחר). 4xx – נמצאה שגיאה כלשהי בבקשה עצמה. 5xx – השרת לא הצליח למלא אחר הבקשה כתוצאה מכשל פנימי. התקבלה בקשה ממשיך תהליך. זהו קוד סטטוס מותנה וכולל רק שורת מצב וכותרים מסוימים והוא נעצר על ידי שורה ריקה. מאז HTTP/1.0 אין הגדרה של 1xx ושרתים מחויבים לא לשלוח ללקוח סטטוס 1xx אלא בתנאים ניסיוניים. 100 המשך משמעות הדבר כי השרת קיבל את כותרי הבקשה והלקוח צריך לשלוח את גוף הבקשה (במקרה שהבקשה גדולה כמו POST). אם גוף הבקשה הוא גדול על הלקוח לשלוח את הכותרים קודם בתור בקשה 100 כדי לראות שהם לא נדחים. 101 החלפת פרוטוקולים הלקוח מבקש ביצוע החלפת פרוטוקולים השרת מאשר שזה יבוצע. 102 מריץ תהליך (WebDav) כמו WebDav הבקשה עשויה להכיל תת-בקשות המערבות בפעולות הקובץ, זה עלול לקחת זמן רב כדי להשלים את הבקשה. קוד זה מציין שהשרת קיבל והוא עיבוד הבקשה, אך התגובה לא זמינה עדיין. זה מונע מהלקוח לחכות ולהניח שהבקשה אבדה. 200 תקין סטנדרטי בתגובה מוצלחת של HTTP. התגובה בפועל תלויה בשיטת בקשה שבשימוש. בשיטה GET, התגובה תכיל מאפיין המתאים למשאב המערכת המבוקש. בשיטת POST התגובה תכיל מאפיין המתאר או מכיל את התוצאה של הפעולה. 201 נוצר הבקשה בוצעה ויצרה משאב חדש. 202 אושר הבקשה התקבלה לעיבוד, אבל פעולת העיבוד לא הושלמה. אפשרי שהבקשה תפעל כפי שהיא או שלא, :מכיוון שהיא עשויה להיות אסורה בזמן התרחשות העיבוד. 203 מידע לא מוסמך השרת עיבד את הבקשה בהצלחה, אך הוא מחזיר מידע שעשוי לבוא ממקור אחר. 204 תוכן ריק השרת עיבד בהצלחה את הבקשה אך התוכן ריק. 205 עדכן מידע השרת עיבד את הבקשה בהצלחה, אך אינו מחזיר כל תוכן. שלא כמו תגובה 204, תגובה זו מחייבת את הלקוח לעדכן את תצוגת המסמך. 206 מידע חלקי השרת מספק רק חלק המשאב בשל טווח הכותרות שנשלח על ידי הלקוח. טווח כותרות משמש כלי כמו wget כדי לאפשר חידוש של הורדות קטע, או לפצל הורדה לתוך זרמים מרובים סימולטנית. 207 תוכן כפול גוף הודעה שעוקב אחר קובץ XML יכול להכיל מספר קודים בתגובה נפרדת, בהתאם למספר תתי בקשות שנעשו. הלקוח חייב לבצע פעולה נוספת כדי להשלים את הבקשה. זוהי תגובה מסוג שכל פעולה נוספת חייבת להתבצע על ידי התוכנה של המשתמש כדי למלא את הבקשה. הפעולה הנדרשת יכולה להתבצע על ידי סוכן המשתמש ללא אינטראקציה עם המשתמש אם ורק אם השיטה בה משתמשת הבקשה השנייה היא GET או HEAD. לקוח שמקבל תגובת סטטוס מסוג זה יותר מ-5 פעמים אמור להניח שזוהי בעצם הפניה אינסופית. 300 מספר אופציות מציין מספר רב של אפשרויות משאב שהלקוח יכול לבצע. זה למשל, יכול לשמש כדי להציג אפשרויות תצוגה שונות עבור וידאו, קבצים עם סיומות שונות. 301 הועבר לצמיתות סטטוס זה וכל הבאים צריכים להפנות אל ה-URL הנתון. 302 נמצא זוהי ההפניה הנפוצה ביותר שבה נדרש הלקוח לבצע הפניה זמנית (הביטוי המתאר המקורי הוא "הועבר זמנית"), אבל בדפדפנים הפופולריים 302 מיושם. עם פונקציונליות של 303. לכן ב- HTTP/1.1 נוספו קודי מצב 303 ו 307 כדי להבחין בין שתי ההתנהגויות. עם זאת, חלק מהיישומים ומסגרות האינטרנט משתמשים ב-302 כאילו היה 303. מחלקת קוד סטטוס זו מיועדת למקרים בהם הלקוח כנראה טעה. למעט כאשר להגיב לבקשת HEAD, השרת צריך לכלול ישות המכילה הסבר על המצב שגיאה, וציון אם זהו מצב זמני או קבוע. אלו קודי מצב החלות על כל שיטה הבקשה. אלה הם בדרך כלל קודי השגיאה הנפוצים ביותר בהם נתקל בגלישה באינטרנט. 400 בקשה לא תקינה הבקשה שנשלחה לשרת אינה תקינה. 401 לא מאומת נידרש לבצע אימות כדי לגשת למשאב המבוקש. 403 אסור אסור לגשת למשאב המבוקש. בניגוד לשגיאה 401, גם אימות לא מאפשר גישה למשאב המבוקש. 404 לא נמצא (זמני) המשאב המבוקש לא נמצא, אך עשוי להיות זמין בעתיד. 410 לא נמצא (קבוע) המשאב המבוקש לא נמצא, וגם לא ימצא. 413 גוף הבקשה גדול מדי שרת האינטרנט מתריע שזרם נתוני ה-HTTP שנשלח על ידי הלקוח היה גדול מדי. לדוגמה חיפוש בגוגל מספר מילים גדול מידי, או בקשה להעלות קובץ גדול מאוד (באמצעות שיטת PUT HTTP) עלולה להיתקל בבעיה של העלאת הקובץ כי הוא עובר את גודל הקובץ המקסימלי שנקבע על ידי שרת האינטרנט. 451 לא זמין מסיבות משפטיות הדף הוסר בעקבות סיבה משפטית (הפרת זכויות יוצרים, פרטיות או הפרת כל חוק אחר). 500 שגיאת שרת השרת נתקל בשגיאה בביצוע הבקשה. 503 שירות אינו זמין השירות אינו זמין זמנית. 504 Gateway Timeout השרת פועל כ-Gateway או Proxy ולא קיבל תגובה משרת אחר (Upstream server). מדיה וקבצים בנושא קוד מצב של HTTP בוויקישיתוף HTTP Extensions for Distributed Authoring -- WEBDAV "Reference of method redirect_to in Ruby Web Framework "Ruby on Rails". It states: The redirection happens as a "302 Moved" header unless otherwise specified". אורכב מ-המקור ב-5 ביולי 2012. {{cite web}}: (עזרה)