Menu

קודי סטטוס HTTP

מדריך עם חיפוש לכל קודי הסטטוס של HTTP, עם הסברים בשפה פשוטה.

מאת Nethanel Bar, Co-founder & CEO

עודכן לאחרונה

מוכנים ללמוד תכנות באמת?

ב-Coddy לומדים דרך כתיבת קוד אמיתי בדפדפן: שיעורים אינטראקטיביים, משוב מיידי ועזרה מ-AI כשנתקעים.

מה הם קודי סטטוס של HTTP?

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

כל קוד סטטוס שייך לאחת מחמש מחלקות לפי הספרה הראשונה שלו: 1xx מידע, 2xx הצלחה, 3xx הפניה, 4xx שגיאת לקוח, 5xx שגיאת שרת. ברגע שיודעים את המחלקה, בדרך כלל יודעים את המשמעות הכללית עוד לפני שבודקים את הקוד הספציפי.

רוב האפליקציות משתמשות רק בגרעין קטן (200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, 503). להבין מה כל אחד מהם *אומר*, ואת ההבדל בין 401 Unauthorized ל-403 Forbidden, או בין 301 Moved Permanently ל-302 Found, זה מה שהופך אתכם למפתחי backend או API טובים יותר.

מה תלמדו תוך כדי שימוש במדריך

  • הספרה הראשונה תמיד אומרת את המחלקה: 1xx מידע, 2xx הצלחה, 3xx הפניה, 4xx שגיאת לקוח, 5xx שגיאת שרת.
  • קודי סטטוס הם *חלק מהחוזה* ש-API מציע: לקוחות צריכים להתפצל לפיהם, ולא לחלץ הודעות שגיאה מגוף התגובה.
  • 4xx אומר שהלקוח טעה במשהו (קלט שגוי, חסר אימות, משאב חסר). 5xx אומר שהשרת נכשל, בלי קשר למה שהלקוח עשה.
  • לחלק מהקודים יש דקויות: 401 vs 403, 301 vs 308, 200 vs 204. ההבחנות האלה חשובות לשמירה במטמון ולניסיונות חוזרים.

איך להשתמש במדריך קודי הסטטוס שלב אחר שלב

  1. חפשו לפי קוד או שם

    הקלידו מספר (404, 429) או מילת מפתח (auth, redirect, rate limit) והקודים המתאימים מסוננים בזמן אמת.

  2. סננו לפי מחלקה

    השתמשו בכפתורי המחלקות (1xx, 2xx, 3xx, 4xx, 5xx) כדי לצמצם את הרשימה כשאתם מסתובבים ולא מחפשים משהו מסוים.

  3. קראו את ההסבר הפשוט

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

  4. השוו קודים קשורים

    השתמשו בקישורי "ראו גם" בין זוגות מבלבלים (401 vs 403, 301 vs 302) כדי לבחור את הקוד הנכון ל-API שלכם.

מחלקות של קודי סטטוס HTTP

חמש המחלקות של קודי סטטוס HTTP ומה הן אומרות במבט אחד. מוגדרות ב-RFC 9110 ורשומות ב-IANA HTTP Status Code Registry.

מחלקהמשמעותקודים נפוצים
1xx מידעהבקשה התקבלה ונמצאת בעיבוד100, 101, 103
2xx הצלחההבקשה עבדה200, 201, 204, 206
3xx הפניהחפשו במקום אחר301, 302, 304, 307, 308
4xx שגיאת לקוחמשהו לא תקין בבקשה400, 401, 403, 404, 409, 422, 429
5xx שגיאת שרתהשרת נכשל בטיפול בבקשה תקינה500, 502, 503, 504

קודי סטטוס HTTP נפוצים שכדאי להכיר

200 OK vs 201 Created vs 204 No Content

200 OK

התגובה הסטנדרטית של "הכול עבד", עם גוף.

201 Created

משאב חדש נוצר כתוצאה מהבקשה, בדרך כלל אחרי POST.

204 No Content

הצלחה, אבל בלי גוף. נפוץ אחרי קריאות DELETE או PUT שלא צריכות להחזיר נתונים.

שלושתם קודי הצלחה, וההבדל הוא במה שהתגובה נושאת. 201 צריך לכלול כותרת Location שמצביעה על המשאב החדש, ו-204 ריק מעצם הגדרתו.

301 Moved Permanently vs 302 Found

301

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

302

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

השתמשו ב-301 כשבאמת העברתם משאב (מיתוג מחדש, שינוי מבנה כתובות). השתמשו ב-302 להפניות קצרות מועד כמו בדיקות A/B, הפניות אחרי התחברות או דפי תחזוקה.

401 Unauthorized vs 403 Forbidden

401

אתם לא מאומתים. השרת לא יודע מי אתם.

403

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

אם שליחת פרטי התחברות אחרים עשויה לפתור את הבעיה, החזירו 401. אם שום פרטי התחברות לא יעזרו (המשאב פשוט חסום למשתמש הזה), החזירו 403.

500 vs 502 vs 503 vs 504

500

שגיאת שרת כללית: הקוד שלכם זרק חריגה שלא טופלה.

502

Bad gateway: פרוקסי שעומד מלפנים (CDN, מאזן עומסים) לא הצליח להגיע לשרת שמאחוריו.

503

Service unavailable: השרת פועל אבל עמוס מדי או במצב תחזוקה.

504

Gateway timeout: פרוקסי הגיע לשרת שמאחוריו אבל לא קיבל תשובה בזמן.

ארבעתם שגיאות שרת, אבל הם מספרים למי שמנפה באגים סיפורים שונים מאוד. 500 זו האפליקציה שלכם, 502 ו-504 מצביעים על נתיב הרשת, ו-503 מצביע על קיבולת.

טעויות נפוצות בקודי סטטוס HTTP

  • להחזיר 200 OK עם {"error": "..."} בגוף התגובה. קודי סטטוס הם חלק מהחוזה, השתמשו בקוד הנכון (400, 404, 500) כדי שלקוחות יוכלו להתפצל לפיו.
  • להשתמש ב-401 לשגיאות הרשאה. 401 נועד לאימות, ודחיית הרשאה היא 403.
  • להשתמש ב-200 למשאבים שנוצרו זה עתה במקום ב-201 עם כותרת Location.
  • להחזיר 404 על גישה לא מורשית. זה מסתיר את המשאב מפני גישוש, אבל גם מבלבל לקוחות שיש להם גישה לגיטימית. 403 בדרך כלל ברור יותר.
  • לבלבל בין 429 Too Many Requests ל-503 Service Unavailable. השתמשו ב-429 למגבלת קצב לכל לקוח, וב-503 לעומס כללי.

שאלות נפוצות על קודי סטטוס HTTP

מה המשמעות של שגיאה 404 ב-HTTP?
404 Not Found אומר שהשרת הבין את הבקשה אבל המשאב בכתובת הזו לא קיים. לרוב הנתיב שגוי, המשאב נמחק או שהייתה טעות הקלדה ב-URL.
מה ההבדל בין 401 ל-403?
401 Unauthorized אומר שאתם לא מאומתים: השרת לא יודע מי אתם. 403 Forbidden אומר שאתם מאומתים אבל אין לכם הרשאה למשאב. שליחת פרטי התחברות אחרים עשויה לפתור 401, אבל לא תפתור 403.
מה ההבדל בין 301 ל-302?
301 Moved Permanently הוא הפניה קבועה: דפדפנים ומנועי חיפוש מעדכנים את הרישומים שלהם. 302 Found הוא הפניה זמנית: לקוחות ממשיכים לבקר ב-URL המקורי. השתמשו ב-301 להעברות קבועות וב-302 לעקיפות זמניות.
מה המשמעות של שגיאה 500 ב-HTTP?
500 Internal Server Error היא שגיאה כללית בצד השרת, בדרך כלל כשחריגה שלא טופלה מבעבעת למעלה. הלקוח לא עשה שום דבר רע: השרת שלכם נכשל בעיבוד בקשה תקינה.
האם תמיד כדאי להשתמש בקוד סטטוס ספציפי?
כן. 200 OK כללי לכישלונות או 500 לכל תקלה הופכים API לקשה יותר לשימוש. בחרו את הקוד הספציפי ביותר שמתאים: לקוחות, פרוקסי, מערכות ניטור ולוגיקת ניסיונות חוזרים כולם מתפצלים לפי קוד הסטטוס.
מה המשמעות של 429 ב-HTTP?
429 Too Many Requests נשלח כשלקוח הגיע למגבלת קצב. התגובה צריכה לכלול כותרת Retry-After שאומרת ללקוח מתי בטוח לנסות שוב.
מה המשמעות של HTTP 403 Forbidden?
403 Forbidden אומר שהשרת הבין את הבקשה ויודע מי אתם, אבל מסרב לתת לכם גישה למשאב. בניגוד ל-401, אימות מחדש לא יעזור: לחשבון שלכם פשוט אין הרשאה. סיבות נפוצות הן תפקידים או הרשאות (scopes) חסרים, רשימות IP מורשות, או משאב שהוא פרטי של משתמש אחר.
מה המשמעות של HTTP 502 Bad Gateway?
502 Bad Gateway אומר ששרת שפועל כפרוקסי או כשער (CDN, מאזן עומסים או reverse proxy) קיבל תגובה לא תקינה או ריקה מהשרת שאליו העביר את הבקשה שלכם. זה בדרך כלל מצביע על כך שה-backend לא זמין, קורס או מוגדר לא נכון, ולא על הבקשה שלכם.
כמה קודי סטטוס HTTP יש?
יש חמש מחלקות (1xx עד 5xx) ובערך 60 קודים מתוקננים שרשומים ב-IANA, אם כי ברובם כמעט לא משתמשים. בפועל, פיתוח web ו-API יומיומי נשען על בערך 15 עד 20 קודי ליבה: 200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502 ו-503. הרשימה עם החיפוש למעלה כוללת כל קוד סטנדרטי עם תיאור בשפה פשוטה.

למידע נוסף

כלי פיתוח נוספים

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל