דלג לתוכן הראשי

מדריך קודי סטטוס HTTP בחינם

מדריך חיפוש לכל קודי סטטוס HTTP — מה כל אחד אומר, מתי הוא משמש, וסיבות נפוצות. מ-100 עד 511.

פועל לא-מקוון לאחר טעינה

61 קודי סטטוס

100

המשך

השרת קיבל את כותרות הבקשה והלקוח צריך להמשיך עם הגוף.

בשימוש לבקשות עם Expect: 100-continue. השרת מאשר שהוא מוכן לקבל את הגוף לפני שהלקוח שולח אותו. נראה לעתים רחוקות ביישומי אינטרנט מודרניים.

RFC 9110 ↗
101

שדרוג פרוטוקולים

השרת משדרג פרוטוקולים כמו שהלקוח ביקש.

בשימוש הנפוץ ביותר לשדרוגי WebSocket - הלקוח מבקש Upgrade: websocket והשרת משיב ב-101 כדי לעבור.

RFC 9110 ↗
102

עיבוד

השרת קיבל את הבקשה וממשיך בעיבודה, אך עדיין לא זמינה תגובה.

תגובת ביניים של WebDAV שנשלחת כדי למנוע פסקי זמן (timeout) בצד הלקוח במהלך פעולות ארוכות. הוצא משימוש - שרתים מודרניים לא צריכים לשלוח אותה.

RFC 2518 ↗
103

רמזים מוקדמים

כותרות ראשוניות שנשלחו לפני התגובה הסופית.

מאפשר לשרתים לשלוח כותרות Link (preload/preconnect) בזמן שהתגובה הסופית עדיין מתכוננת, כדי שדפדפנים יוכלו להתחיל להביא נכסים קריטיים מוקדם יותר.

RFC 8297 ↗
200

בסדר

הבקשה הצליחה.

תגובת ההצלחה הסטנדרטית. המשמעות תלויה בשיטת HTTP: GET → משאב מוחזר, POST/PUT → הפעולה הושלמה.

RFC 9110 ↗
201

נוצר

משאב חדש נוצר בהצלחה.

נפוץ לאחר POST. התגובה צריכה לכלול כותרת Location המצביעה על ה-URL של המשאב החדש.

RFC 9110 ↗
202

התקבל

הבקשה התקבלה לעיבוד, אך העיבוד לא הושלם.

לפעולות אסינכרוניות - השרת מסדר את העבודה בתור. הלקוח צריך לשאול נקודת קצה של סטטוס או לחזור מאוחר יותר.

RFC 9110 ↗
203

מידע שאינו סמכותי

התגובה שונתה על ידי proxy מתמיר.

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

RFC 9110 ↗
204

אין תוכן

הבקשה הצליחה אך אין גוף תגובה.

בשימוש לעתים קרובות לפעולות DELETE או עדכוני PUT שלא צריכים להחזיר גוף. הלקוח לא צריך לנווט מהדף הנוכחי.

RFC 9110 ↗
205

אפס תוכן

הבקשה הצליחה; הלקוח צריך להגדיר מחדש את תצוגת המסמך.

כמו 204, לא מוחזר גוף - אך הלקוח מונחה בנוסף לאפס את הטופס או התצוגה שיצרו את הבקשה (לדוגמה, לנקות את שדות הטופס עבור הערך הבא).

RFC 9110 ↗
206

תוכן חלקי

השרת סיפק רק חלק מהמשאב.

תגובה לבקשת Range. בשימוש על ידי נגני וידאו ומנהלי הורדות לחידוש הורדות שנקטעו או להזרמת קבצים גדולים.

RFC 9110 ↗
207

סטטוס מרובה

גוף התגובה מכיל מספר קודי סטטוס לפעולות מרובות.

WebDAV: גוף XML מדווח על תוצאת מספר פעולות משנה בנפרד - לדוגמה, העברה קבוצתית שבה חלק מהפריטים הצליחו ואחרים נכשלו.

RFC 4918 ↗
208

כבר דווח

חברי אוסף רשומים כבר קודם לכן בתגובה.

WebDAV: בשימוש בתוך תגובות Multi-Status 207 כדי להימנע מרישום חוזר של חברי אותו אוסף כאשר קישורי binding יוצרים לולאות.

RFC 5842 ↗
226

נעשה שימוש ב-IM

התגובה היא תוצאה של מניפולציות מופע המיושמות על המשאב.

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

RFC 3229 ↗
300

אפשרויות מרובות

ייצוגים מרובים של המשאב זמינים.

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

RFC 9110 ↗
301

הועבר לצמיתות

המשאב עבר לצמיתות ל-URL חדש.

בשימוש לשינויי URL קבועים - מנועי חיפוש יעדכנו את האינדקס שלהם. סמכות ה-SEO עוברת ל-URL החדש.

RFC 9110 ↗
302

נמצא (הפניה זמנית)

המשאב נמצא כרגע ב-URL שונה.

מציין שההפניה אינה קבועה. ה-caching פחות אגרסיבי מאשר ב-301. בשימוש למקרים כמו 'נדרשת התחברות, הפניה ל-/login'.

RFC 9110 ↗
303

ראה אחר

הפניה ל-URL שונה באמצעות GET.

בשימוש לאחר הגשות POST - התגובה אומרת 'ה-POST שלך עבד, ראה את ה-URL של ה-GET הזה לקבלת התוצאה'. דפדפנים תמיד מבצעים GET ל-URL החדש.

RFC 9110 ↗
304

לא שונה

הגרסה השמורה במטמון עדיין תקפה; השתמש בה.

תגובה לבקשה מותנית (עם If-None-Match או If-Modified-Since headers). חוסך פס רוחב - אין גוף מוחזר.

RFC 9110 ↗
307

הפניה זמנית

כמו 302 אך שומר על שיטת HTTP המקורית.

אם המקור היה POST, ההפניה משתמשת גם ב-POST. חלופה מודרנית ל-302 כאשר שימור שיטה חשוב.

RFC 9110 ↗
308

הפניה קבועה

כמו 301 אך שומר על שיטת HTTP המקורית.

החלפה מודרנית ל-301 כאשר אתה רוצה שבקשות POST יישארו POST לאחר ההפניה.

RFC 9110 ↗
400

בקשה שגויה

השרת לא הצליח להבין את הבקשה בגלל תחביר שגוי.

סיבות נפוצות: JSON שגוי בגוף, פרמטרי שאילתה לא תקפים, או שדות נדרשים חסרים. בדוק את גוף הבקשה וכותרות.

RFC 9110 ↗
401

לא מורשה

נדרש אימות ולא סופק.

הלקוח חייב לכלול פרטי אימות (Authorization header, cookie, token). 'Unauthorized' הוא שם מטעה - למעשה הוא מציין 'לא מאומת'.

RFC 9110 ↗
402

נדרש תשלום

שמור לשימוש עתידי - לעתים משמש לרמות API בתשלום.

נועד במקור לתשלומים דיגיטליים. שימוש מודרני: ממשקי API מחזירים לפעמים 402 כשמשתמש חרג מהמכסה ששילם עליה.

RFC 9110 ↗
403

אסור

הלקוח מאומת אך אין לו הרשאה.

שונה מ-401 - המשתמש כן מחובר, אך לחשבון שלו אין הרשאה למשאב זה. בדוק את הלוגיקה של תפקיד/הרשאות.

RFC 9110 ↗
404

לא נמצא

המשאב המבוקש לא קיים.

או שה-URL שגוי, או שהמשאב נמחק, או שהוא מעולם לא היה קיים. שרתים לעתים מחזירים 404 כדי להסתיר את קיומו כאשר 403 היה מדויק יותר.

RFC 9110 ↗
405

שיטה לא מורשית

שיטת ה-HTTP בשימוש אינה מורשית למשאב זה.

לדוגמה, בקשת GET לנקודת קצה המקבלת רק POST. התגובה צריכה לכלול כותרת Allow המפרטת שיטות תקפות.

RFC 9110 ↗
406

לא קביל

אין ייצוג תואם לכותרות Accept של הלקוח.

הלקוח ביקש סוג תוכן, שפה או קידוד (דרך Accept, Accept-Language, Accept-Encoding) שהשרת לא יכול לספק. שרתים רבים מדלגים על משא ומתן קפדני ומחזירים ברירת מחדל במקום זאת.

RFC 9110 ↗
407

אימות Proxy נדרש

הלקוח חייב להזדהות מול ה-proxy תחילה.

כמו 401, אך הונפקה על ידי proxy: הלקוח חייב לשלוח credentials Proxy-Authorization. נראה בתוך רשתות תאגידיות עם authenticating proxies.

RFC 9110 ↗
408

פסק זמן של הבקשה

תם הזמן שהשרת המתין לבקשה.

הלקוח לקח זמן רב מדי לשליחת גוף הבקשה או השאיר את החיבור במצב סרק. נסה את הבקשה שוב.

RFC 9110 ↗
409

התנגשות

הבקשה סותרת את מצבו הנוכחי של המשאב.

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

RFC 9110 ↗
410

נעלם

המשאב נמחק ולא יחזור.

חזקה יותר מ-404 — השרת יודע במפורש שהמשאב היה קיים בעבר אך הוסר לצמיתות. מנועי חיפוש יסירו אותו מהאינדקס.

RFC 9110 ↗
411

נדרש אורך

השרת דורש כותרת Content-Length.

הבקשה נדחתה מכיוון שחסרה לה כותרת Content-Length והשרת מסרב לגופים בגודל לא ידוע. הוסף את הכותרת ונסה שוב.

RFC 9110 ↗
412

תנאי מקדים נכשל

תנאי בכותרות הבקשה לא התקיים.

מוחזר כאשר כותרות מותנות כמו If-Match או If-Unmodified-Since נכשלות — בדרך כלל נעילה אופטימית: מישהו אחר שינה את המשאב מאז הגרסה שלך. טען מחדש את המשאב ונסה שוב.

RFC 9110 ↗
413

מטען גדול מדי

גוף הבקשה חורג מגבול הגודל של השרת.

נפוץ בעת העלאת קבצים גדולים. תצורת השרת (nginx, apache) קבעה גודל גוף מקסימלי. בדוק את תצורת השרת.

RFC 9110 ↗
414

URI ארוך מדי

כתובת ה-URL של הבקשה חורגת מגבול האורך של השרת.

בדרך כלל נגרם ממחרוזות שאילתה ארוכות מאוד (לדוגמה, קידוד נתונים בבקשת GET). עבור לגוף POST, או הגדל את מגבלת השרת אם אתה שולט בו.

RFC 9110 ↗
415

סוג מדיה לא נתמך

השרת לא יכול להתמודד עם ה-Content-Type שנשלח.

לדוגמה, שליחת application/xml לשרת שמקבל רק application/json. הגדר את כותרת Content-Type בצורה נכונה.

RFC 9110 ↗
416

טווח לא ניתן לסיפוק

טווח הבתים המבוקש נמצא מחוץ לגודל המשאב.

כותרת ה-Range מבקשת חלק שאין בקובץ — לדוגמה, המשך הורדה מעבר לסוף הקובץ. התגובה צריכה לכלול Content-Range עם הגודל בפועל.

RFC 9110 ↗
417

הציפייה נכשלה

השרת לא יכול לעמוד בדרישות כותרת Expect.

נשלח כאשר השרת אינו תומך ב-Expect: 100-continue. חלק מהלקוחות שולחים כותרת זו כברירת מחדל על POSTs גדולים; השבתה בדרך כלל פותרת את השגיאה.

RFC 9110 ↗
418

אני קומקום תה

השרת מסרב להכין קפה מכיוון שהוא קומקום.

צחוק יום אפריל מ-1998 (RFC 2324). כמה APIs בפועל משתמשים בו לצחוקים או לסימון נקודות קצה מיושנות. לא לשימוש בייצור.

RFC 2324 ↗
421

בקשה שהופנתה שגוי

הבקשה נשלחה לשרת שאינו יכול לייצר תגובה עבורה.

נפוץ עם שימוש חוזר בחיבור HTTP/2: הבקשה הגיעה לשרת שאינו מוגדר לשם המארח (hostname) של היעד. הלקוח צריך לנסות שוב בחיבור חדש.

RFC 9110 ↗
422

תוכן שלא ניתן לעיבוד

הבקשה הייתה חוקית מבחינה תחבירית אך שגויה מבחינה סמנטית.

לדוגמה, ה-JSON נותח בצורה נכונה אך שדה חובה היה חסר, או שערך שדה היה מחוץ לטווח. נפוץ בתגובות אימות של REST API.

RFC 9110 ↗
423

נעול

המשאב נעול.

WebDAV: משאב המקור או היעד נעול על ידי לקוח אחר, כך שלא ניתן להמשיך בפעולה. המתן שהנעילה תשוחרר או בטל אותה עם הטוקן הנכון.

RFC 4918 ↗
424

תלות שנכשלה

הבקשה נכשלה מכיוון שבקשה תלויה קודמת נכשלה.

WebDAV: בשרשרת של פעולות תלויות, פעולה קודמת נכשלה, ולכן זו לא בוצעה. בדוק את הכשל הקודם כדי למצוא את הסיבה השורשית.

RFC 4918 ↗
425

מוקדם מדי

השרת מסרב לעבד בקשה שעלולה להישלח שוב (replay).

קשור ל-TLS 1.3 0-RTT (נתונים מוקדמים): השרת לא יסתכן בעיבוד בקשה שאולי נשלחה שוב (replay). הלקוח צריך לנסות שוב לאחר השלמת לחיצת היד (handshake).

RFC 8470 ↗
426

נדרש שדרוג

הלקוח חייב לעבור לפרוטוקול אחר.

השרת מסרב לשרת את הבקשה על פני הפרוטוקול הנוכחי אך יעשה זאת לאחר שדרוג — התגובה כוללת כותרת Upgrade שקובעת את הפרוטוקול הנדרש.

RFC 9110 ↗
428

נדרש תנאי מקדים

השרת דורש שהבקשה תהיה מותנית.

השרת דורש כותרות מותנות (כמו If-Match) כדי למנוע קונפליקטים של אובדן עדכונים. הבא את המשאב, לכוד את ה-ETag שלו, ושלח מחדש עם If-Match.

RFC 6585 ↗
429

יותר מדי בקשות

הלקוח מוגבל בקצב.

האט. התגובה צריכה לכלול כותרת Retry-After המציינת מתי לנסות שוב. נפוץ עם APIs שיש להם מכסות בקשה.

RFC 6585 ↗
431

שדות כותרת הבקשה גדולים מדי

כותרות גדולות מדי לעיבוד השרת.

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

RFC 6585 ↗
451

לא זמין מטעמים משפטיים

גישה נדחתה בגלל דרישות משפטיות.

המשאב חסום מסיבות משפטיות — צנזורה, צווי בית משפט, או תקנות אזוריות. המספר הוא קריצה לרומן Fahrenheit 451.

RFC 7725 ↗
500

שגיאת שרת פנימית

השרת נתקל בתנאי בלתי צפוי.

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

RFC 9110 ↗
501

לא מיושם

השרת אינו תומך בפונקציונליות המבוקשת.

לדוגמה, השרת לא מזהה את שיטת HTTP. נדיר בפועל — לעתים קרובות יותר תראה 405.

RFC 9110 ↗
502

שער שגוי

השרת, הפועל כשער, קיבל תגובה לא תקינה משרת upstream.

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

RFC 9110 ↗
503

השירות אינו זמין

השרת אינו יכול זמנית להתמודד עם הבקשה.

או שהשרת מושבת לתחזוקה או שהוא בעומס יתר. התגובה צריכה לכלול כותרת Retry-After. לעתים קרובות מוחזר במהלך פריסות.

RFC 9110 ↗
504

פסק זמן של השער

שרת השער חרג מהזמן בהמתנה לתגובה משרת upstream.

שירות הקצה האחורי לא הגיב במהירות מספקת. בדוק את תקינות שירות ה-upstream ואת הגדרות ה-timeout.

RFC 9110 ↗
505

גרסת HTTP לא נתמכת

השרת אינו תומך בגרסת HTTP המשמשת בבקשה.

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

RFC 9110 ↗
506

גם הווריאנט מנהל משא ומתן

לשרת יש תצורה שגויה של משא ומתן על תוכן.

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

RFC 2295 ↗
507

אחסון לא מספיק

לשרת אין מקום בדיסק.

WebDAV-ספציפי במקורו אך לפעמים משמש שרתים כלליים. פירושו שהשרת לא יכול לשמור את הבקשה בגלל אילוצי אחסון.

RFC 4918 ↗
508

זוהתה לולאה

השרת זיהה לולאה אינסופית בעת עיבוד הבקשה.

WebDAV: עיבוד בקשת Depth: infinity נכנס ללולאה (לדוגמה, קישורים מעגליים). הפעולה הופסקה.

RFC 5842 ↗
510

לא מורחב

הרחבות נוספות לבקשה נדרשות.

מ-HTTP Extension Framework המיושן: השרת צריך מידע נוסף לפני שהוא יכול לעמוד בבקשה. למעשה לא משמש ברשת המודרנית.

RFC 2774 ↗
511

נדרש אימות רשת

הלקוח חייב להזדהות כדי לקבל גישה לרשת.

משמש על ידי פורטלים שבויים (בית מלון / WiFi שדה תעופה) כדי להצביע על כך שהמשתמש חייב להתחבר לרשת לפני גישה לאתרים חיצוניים.

RFC 6585 ↗

שימושים נפוצים

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

כיצד זה עובד

כלי זה הוא הפניה בצד לקוח בנויה סביב טבלת חיפוש מקודדת-קשיח של 63 קודי סטטוס HTTP המשתרעים על כל חמש הקטגוריות (1xx–5xx), כל אחד מתויג במספר ה-RFC המגדיר שלו. אין קריאת שרת, אין API חיצוני, ואין בקשת רשת — כל הסינון וההצגה קורים בדפדפן באמצעות שיטות מערך ומחרוזת מובנות של JavaScript.

  1. 1
    טבלת חיפוש נטענת
    הסט המלא של 63 קודי סטטוס רשומים ב-IANA מוטמע ישירות בכלי הזה כמערך JavaScript, כל רשומה נושאת את הקוד המספרי, השם הקנוני באנגלית, מחלקת הקטגוריה, וה-RFC הספציפי שמגדיר אותו (למשל RFC 9110 לרוב קודי HTTP/1.1, RFC 6585 עבור 429 Too Many Requests, RFC 2324 עבור 418 I'm a Teapot).
  2. 2
    הסינון פועל בזיכרון
    תוך כדי הקלדה או בחירת מסנן קטגוריה, Array.filter של JavaScript פועל על הרשימה שבזיכרון, מתאים את השאילתה שלך מול מספר קוד הסטטוס, השם הקנוני, ומחרוזות התיאור הקצר והארוך באמצעות String.includes — ללא השהיית דיבאונס, ללא מסע הלוך-חזור לשרת.
  3. 3
    פרטים מתרחבים עם קישור RFC
    כל תוצאה מוצגת כאלמנט details/summary של HTML. הרחבת רשומה חושפת את ההסבר המלא וקישור ישיר ל-RFC המוסמך ב-rfc-editor.org, כך שתוכל לקרוא את טקסט המפרט המדויק לכל קוד.
  4. 4
    קישורים עמוקים והעתקה ללוח
    פתיחת רשומה מעדכנת את hash הכתובת למספר הקוד (למשל #404), הופכת את הדף לניתן-לשיתוף וידידותי-לסימון. כפתור ההעתקה כותב את המחרוזת הקנונית (למשל '404 Not Found') ללוח דרך navigator.clipboard API של הדפדפן.

כלים קשורים

שאלות נפוצות