Sobes.tech
Junior

Cosa sono i codici di risposta HTTP e in cosa si differenziano tra loro?

sobes.tech AI

Risposta dell'AI

I codici di risposta HTTP sono numeri di tre cifre restituiti dal server in risposta a una richiesta del client. Indicano lo stato dell'elaborazione della richiesta e forniscono informazioni sul fatto che sia stata completata con successo, che si sia verificato un errore o che siano necessarie azioni aggiuntive.

I codici sono divisi in cinque classi:

  • 1xx (Informativi): La richiesta è stata accettata, l'elaborazione continua.
  • 2xx (Riusciti): La richiesta è stata ricevuta, compresa ed elaborata con successo.
  • 3xx (Reindirizzamenti): Il client deve eseguire ulteriori azioni per completare la richiesta.
  • 4xx (Errori del client): La richiesta contiene un errore di sintassi o non può essere elaborata.
  • 5xx (Errori del server): Il server non è riuscito a completare la richiesta.

Le differenze tra i codici risiedono nella loro semantica, relativa alle diverse fasi dell'elaborazione della richiesta e ai possibili esiti.

Esempi di codici comunemente usati:

Codice Descrizione Classe
200 OK Riusciti
201 Creato Riusciti
301 Spostato Permanentemente Reindirizzamenti
302 Trovato Reindirizzamenti
400 Richiesta malformata Errori del client
401 Non autorizzato Errori del client
403 Vietato Errori del client
404 Non trovato Errori del client
500 Errore interno del server Errori del server
503 Servizio non disponibile Errori del server
// Esempio di gestione della risposta HTTP in JavaScript
fetch('/api/data')
  .then(response => {
    if (response.ok) { // Verifica dello stato di successo (2xx)
      return response.json();
    } else {
      // Gestione degli errori in base al codice di stato
      console.error(`Errore HTTP: ${response.status}`);
      if (response.status === 404) {
        console.error('Risorsa non trovata.');
      }
      throw new Error(`Errore HTTP: ${response.status}`);
    }
  })
  .then(data => {
    console.log('Dati ricevuti:', data);
  })
  .catch(error => {
    console.error('Errore nel caricamento dei dati:', error);
  });