קודי סטטוס של 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 שלכם.
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. הרשימה עם החיפוש למעלה כוללת כל קוד סטנדרטי עם תיאור בשפה פשוטה.