Junior
Τι είναι οι κωδικοί απάντησης HTTP και ποια είναι η διαφορά μεταξύ τους;
sobes.tech AI
Απάντηση από AI
Οι κωδικοί απάντησης HTTP είναι τριψήφιοι αριθμοί που επιστρέφονται από τον διακομιστή ως απάντηση σε ένα αίτημα του πελάτη. Υποδεικνύουν την κατάσταση επεξεργασίας του αιτήματος και παρέχουν πληροφορίες σχετικά με το αν ολοκληρώθηκε με επιτυχία, αν προέκυψε σφάλμα ή αν απαιτείται περαιτέρω ενέργεια.
Οι κωδικοί χωρίζονται σε πέντε κατηγορίες:
- 1xx (Πληροφοριακοί): Το αίτημα έγινε αποδεκτό, η επεξεργασία συνεχίζεται.
- 2xx (Επιτυχείς): Το αίτημα ελήφθη, κατανοήθηκε και επεξεργάστηκε με επιτυχία.
- 3xx (Ανακατευθύνσεις): Ο πελάτης πρέπει να εκτελέσει περαιτέρω ενέργειες για να ολοκληρώσει το αίτημα.
- 4xx (Σφάλματα πελάτη): Το αίτημα περιέχει συντακτικό σφάλμα ή δεν μπορεί να επεξεργαστεί.
- 5xx (Σφάλματα διακομιστή): Ο διακομιστής δεν μπόρεσε να εκτελέσει το αίτημα.
Οι διαφορές μεταξύ των κωδικών σχετίζονται με τη σημασιολογία τους, που αφορά τα διαφορετικά στάδια επεξεργασίας του αιτήματος και τα πιθανά αποτελέσματα.
Παραδείγματα συχνά χρησιμοποιούμενων κωδικών:
| Κωδικός | Περιγραφή | Κατηγορία |
|---|---|---|
| 200 | OK | Επιτυχείς |
| 201 | Δημιουργήθηκε | Επιτυχείς |
| 301 | Μόνιμα μετακινημένο | Ανακατευθύνσεις |
| 302 | Βρέθηκε | Ανακατευθύνσεις |
| 400 | Κακό αίτημα | Σφάλματα πελάτη |
| 401 | Μη εξουσιοδοτημένο | Σφάλματα πελάτη |
| 403 | Απαγορεύεται | Σφάλματα πελάτη |
| 404 | Δεν βρέθηκε | Σφάλματα πελάτη |
| 500 | Εσωτερικό σφάλμα διακομιστή | Σφάλματα διακομιστή |
| 503 | Υπηρεσία μη διαθέσιμη | Σφάλματα διακομιστή |
// Παράδειγμα επεξεργασίας απάντησης HTTP σε JavaScript
fetch('/api/data')
.then(response => {
if (response.ok) { // Έλεγχος επιτυχούς κατάστασης (2xx)
return response.json();
} else {
// Διαχείριση σφαλμάτων βάσει κωδικού κατάστασης
console.error(`Σφάλμα HTTP: ${response.status}`);
if (response.status === 404) {
console.error('Πόρος δεν βρέθηκε.');
}
throw new Error(`Σφάλμα HTTP: ${response.status}`);
}
})
.then(data => {
console.log('Ληφθέντα δεδομένα:', data);
})
.catch(error => {
console.error('Σφάλμα φόρτωσης δεδομένων:', error);
});