Sobes.tech
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);
  });