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);
});