חולמים על קריירה בהייטק?
בדקו את הקורסים שלנו:
ניהול שגיאות - HTTP Status Codes
ניהול שגיאות - HTTP Status Codes
ניהול שגיאות הוא חלק קריטי בתהליך הפיתוח, במיוחד כשעובדים עם מערכות אינטרנטיות. קודי מצב HTTP מאפשרים לנו להבין את תוצאות הבקשה ולטפל בשגיאות בצורה מסודרת. כל קוד מצב שייך לקטגוריה מסוימת, וחשוב לדעת איך להשתמש בהם בצורה נכונה כדי להבטיח חווית משתמש טובה ומובנת.
מהם קודי מצב HTTP?
קודי מצב HTTP הם ערכים שמחזירים השרתים כדי להודיע ללקוח (למשתמש או לאפליקציה) מה קרה לאחר שליחת הבקשה. קודי מצב HTTP מחולקים לכמה קטגוריות עיקריות:
לדוגמה, אם הבקשה הצליחה, השרת יחזיר קוד 200 OK
. אם הלקוח שלח בקשה עם נתונים שגויים או חסרים, השרת יוכל להחזיר קוד 400 Bad Request
. אם יש בעיה בשרת, קוד כמו 500 Internal Server Error
יופיע בתגובה.
קודים נפוצים ושימושם
נראה דוגמה של קוד מצב 404 Not Found
במערכת Express. כאשר ננסה לגשת לכתובת שאין לה משאב בשרת, השרת יחזיר את הקוד הזה:
1
2
3
4
5
6
7
8
const express = require('express');
const app = express() ;
app.get('/error', (req, res) =>
res.status(404).send('הדף לא נמצא');
app.listen(3000, () =>
console.log('השרת פועל על פורט 3000');
כאשר נשלח בקשה לכתובת /error
, השרת יגיב עם קוד 404
יחד עם הודעה מתאימה.
קוד מצב 200 - הצלחה
קוד 200 OK
הוא קוד ההצלחה הנפוץ ביותר, והוא מציין שהבקשה הושלמה בהצלחה. לדוגמה, נשלח בקשה לקרוא מידע מהשרת, והוא מחזיר את הנתונים יחד עם קוד 200. נבחן דוגמה נוספת עם קוד 201 Created
, שמציין שהמשאב החדש נוצר בהצלחה:
1
2
3
4
5
6
app.post('/create', (req, res) =>
// יצירת משאב חדש
res.status(201).send('המשאב נוצר בהצלחה');
app.listen(3000, () =>
console.log('השרת פועל על פורט 3000');
במקרה זה, הבקשה מבוצעת בצורה נכונה, והמשאב החדש נוצר בשרת.
קוד מצב 400 - בקשה שגויה
לעיתים הלקוח שולח בקשה לא תקינה, למשל אם הוא לא סיפק פרמטרים נדרשים או שלח נתונים לא נכונים. במקרה כזה, השרת יחזיר קוד 400 Bad Request
. כאן נוכל לראות איך נעשה שימוש בקוד זה ב-Express:
1
2
3
4
5
6
7
app.post('/submit', (req, res) =>
const { name, email } = req.body;
if (!name || !email) {
return res.status(400).send('שם או דואר אלקטרוני חסרים');
}
// נמשיך בטיפול בבקשה
res.status(200).send('הבקשה בוצעה בהצלחה');
אם חסר פרמטר חיוני בבקשה, השרת יחזיר קוד 400
עם הודעת שגיאה מתאימה.
קוד מצב 500 - שגיאת שרת פנימית
כאשר השרת נתקל בבעיה פנימית במהלך עיבוד הבקשה, הוא מחזיר קוד 500 Internal Server Error
. זהו קוד שגיאה כללי שמצביע על בעיה בשרת, למשל בעיית קישוריות למסד נתונים או בעיה בקוד עצמו. כך אפשר לטפל בשגיאה כזו:
1
2
3
4
5
6
7
8
app.get('/server-error', (req, res) =>
try {
// פעולה שגורמת לשגיאה
throw new Error('בעיה בשרת');
} catch (err) {
res.status(500).send('שגיאת שרת פנימית');
}
// בסיום, אם קרתה שגיאה, השרת יחזיר קוד 500
במקרה זה, אם קרתה שגיאה במהלך עיבוד הבקשה, השרת יחזיר קוד 500
עם הודעה מתאימה.
קוד מצב 401 - לא מורשה
כאשר משתמש מנסה לגשת למשאב מוגבל מבלי לספק את אישור הגישה הדרוש, השרת יחזיר קוד 401 Unauthorized
. לדוגמה, אם משתמש מנסה לגשת לאזור שנדרשת בו כניסה עם סיסמה:
1
2
3
4
5
6
7
app.get('/protected', (req, res) =>
const token = req.headers['authorization'];
if (!token) {
return res.status(401).send('לא מורשה');
}
// אם יש אישור, נמשיך
res.status(200).send('גישה אושרה');
כשהמשתמש לא מספק את הטוקן הנדרש, השרת יחזיר קוד 401
.
קוד מצב 403 - גישה אסורה
בדומה ל-401, קוד 403 Forbidden
מציין שהמשתמש לא מורשה לבצע את הפעולה, גם אם יש לו אישור בסיסי. לדוגמה, משתמש עם הרשאות לא מספקות לא יוכל לגשת למידע מסוים:
1
2
3
4
5
6
7
app.get('/admin', (req, res) =>
const role = req.user.role;
if (role !== 'admin') {
return res.status(403).send('גישה אסורה');
}
// אם יש הרשאות, נמשיך
res.status(200).send('הגעת לאזור המנהל');
במקרה זה, אם המשתמש לא שייך לתפקיד המנהל, השרת יחזיר קוד 403
.
קוד מצב 202 - מתקבל לעיבוד
כאשר הבקשה התקבלה בהצלחה, אך היא עדיין בתהליך עיבוד, השרת יחזיר קוד 202 Accepted
. זה קוד שמתאר מצב שבו הבקשה מקובלת אך לא הושלמה מידית:
1
2
app.post('/process', (req, res) =>
res.status(202).send('הבקשה התקבלה לעיבוד');
קוד מצב 302 - מיקום מחדש
קוד 302 Found
מציין שהבקשה הועברה למיקום חדש באופן זמני. השרת מחזיר קוד זה כאשר המשאב נמצא במיקום אחר לזמן מוגבל:
1
2
app.get('/redirect', (req, res) =>
res.status(302).redirect('/new-location');
כאן השרת יעביר את המשתמש לכתובת חדשה.
כמובן, יש הרבה קודי מצב נוספים עם תרחישים שונים. השתמש בקודים המתאימים על מנת לתת למשתמשים ולהתמודדות עם בעיות בצורה נכונה ויעילה.
הצטרפו לאתר קודבוקס והתחילו ללמוד תכנות לבד.
אין צורך בידע מקדים, לומדים לתכנת מאפס.
פלטפורמת תכנות המוטמעת בדפדפן שתבדוק את הקוד שלכם בזמן אמת.
קודי, מורה הבינה המלאכותית של אתר קודבוקס שיעזור לכם בפתרון שאלות הקוד באתר.
צוברים מטבעות קודבוקס במהלך הלמידה,
