Codici di stato HTTP: significato degli errori principali
I codici di stato HTTP indicano il risultato di una richiesta effettuata dal browser a un server web.
Quando visiti una pagina, il browser invia una richiesta al server. Il server risponde con un codice numerico che comunica se la richiesta è stata completata correttamente, se la pagina è stata spostata oppure se si è verificato un problema.
La prima cifra identifica la categoria della risposta:
- 1xx: risposta informativa;
- 2xx: richiesta completata correttamente;
- 3xx: reindirizzamento;
- 4xx: problema relativo alla richiesta, all’autenticazione o all’accesso;
- 5xx: errore durante l’elaborazione da parte del server o di un servizio intermedio.
Di seguito sono descritti i codici HTTP più comuni.
200 OK
Il codice 200 OK indica che la richiesta è stata elaborata correttamente.
È la risposta normalmente restituita quando una pagina, un’immagine o un’altra risorsa viene caricata senza problemi.
301 Moved Permanently
Il codice 301 Moved Permanently non rappresenta un errore.
Indica che una pagina o una risorsa è stata trasferita definitivamente a un nuovo indirizzo.
Il browser e i motori di ricerca vengono reindirizzati automaticamente verso il nuovo URL.
Un redirect 301 deve essere utilizzato quando:
- una pagina cambia indirizzo;
- un contenuto viene spostato definitivamente;
- due pagine vengono unite;
- viene modificata la struttura dei permalink;
- si passa definitivamente da un dominio a un altro.
Il reindirizzamento dovrebbe condurre alla pagina nuova più pertinente, non automaticamente alla homepage.
302 Found
Il codice 302 Found indica un reindirizzamento temporaneo.
La risorsa si trova momentaneamente a un altro indirizzo, ma l’URL originale potrebbe tornare disponibile.
Deve essere utilizzato quando lo spostamento non è definitivo.
400 Bad Request
Il codice 400 Bad Request indica che il server non può elaborare la richiesta perché non è valida o è stata formulata in modo errato.
Può dipendere, ad esempio, da:
- un URL non valido;
- cookie danneggiati;
- intestazioni HTTP errate;
- dati inviati in un formato non corretto;
- una richiesta troppo grande.
Come primo tentativo puoi ricaricare la pagina, cancellare i cookie del sito oppure verificare l’indirizzo inserito.
401 Unauthorized
Il codice 401 Unauthorized indica che l’accesso alla risorsa richiede un’autenticazione valida.
Le credenziali possono essere:
- assenti;
- errate;
- scadute;
- non autorizzate ad accedere alla risorsa.
Verifica il nome utente e la password oppure effettua nuovamente l’accesso.
403 Forbidden
Il codice 403 Forbidden indica che il server ha ricevuto e compreso la richiesta, ma rifiuta di autorizzare l’accesso alla risorsa.
Le cause più comuni sono:
- permessi errati su file o cartelle;
- regole presenti nel file
.htaccess; - blocchi per indirizzo IP;
- regole firewall;
- plugin di sicurezza;
- limitazioni geografiche;
- assenza di un file
index.phpoindex.html.
Consulta la guida dedicata all’errore 403 Forbidden per verificare permessi, regole di sicurezza e registri degli errori.
404 Not Found
Il codice 404 Not Found indica che il server è raggiungibile, ma non riesce a trovare la pagina o la risorsa richiesta.
Può comparire quando:
- l’indirizzo è stato digitato in modo errato;
- la pagina è stata eliminata;
- il permalink è stato modificato;
- un collegamento interno punta a un URL inesistente;
- una pagina è stata spostata senza configurare un redirect.
Se la pagina è stata trasferita definitivamente, è consigliabile creare un redirect 301 verso il nuovo contenuto equivalente.
Consulta la guida dedicata all’errore 404 Not Found per controllare permalink, collegamenti e reindirizzamenti.
408 Request Timeout
Il codice 408 Request Timeout indica che il server non ha ricevuto la richiesta completa entro il tempo previsto.
Può dipendere da:
- una connessione lenta o instabile;
- una richiesta interrotta;
- un problema temporaneo di rete;
- un sovraccarico del server.
Prova a ricaricare la pagina e verifica la connessione Internet.
410 Gone
Il codice 410 Gone indica che la risorsa è stata rimossa definitivamente e non sarà più disponibile.
A differenza del codice 404, il server comunica esplicitamente che il contenuto è stato eliminato in modo permanente.
429 Too Many Requests
Il codice 429 Too Many Requests indica che sono state effettuate troppe richieste in un determinato intervallo di tempo.
Può essere causato da:
- tentativi di accesso ripetuti;
- bot o crawler troppo aggressivi;
- chiamate API molto frequenti;
- plugin configurati in modo errato;
- operazioni automatiche ripetute.
È necessario attendere prima di riprovare oppure ridurre la frequenza delle richieste.
500 Internal Server Error
Il codice 500 Internal Server Error indica che il server ha riscontrato una condizione imprevista che gli impedisce di completare la richiesta.
È un errore generico e può dipendere da:
- errori PHP;
- plugin o temi incompatibili;
- regole errate nel file
.htaccess; - memoria PHP esaurita;
- permessi non corretti;
- versione PHP incompatibile;
- aggiornamenti incompleti.
Per individuare la causa è necessario consultare il registro error_log.
Consulta la guida dedicata all’errore 500 Internal Server Error per seguire una procedura diagnostica completa.
502 Bad Gateway
Il codice 502 Bad Gateway indica che un server che agisce come gateway o proxy ha ricevuto una risposta non valida dal servizio a monte.
Può dipendere da:
- un servizio temporaneamente non disponibile;
- un proxy o una CDN;
- un problema tra server;
- un processo PHP non raggiungibile;
- un’applicazione che non risponde correttamente.
Se il problema è occasionale, attendi alcuni minuti e ricarica la pagina. Se continua, consulta i registri del server oppure contatta l’assistenza.
503 Service Unavailable
Il codice 503 Service Unavailable indica che il server non riesce temporaneamente a gestire la richiesta.
Può dipendere da:
- manutenzione;
- sovraccarico;
- risorse del piano esaurite;
- troppi processi simultanei;
- plugin o script particolarmente pesanti;
- backup, importazioni o scansioni in corso;
- problemi temporanei dell’applicazione.
L’errore può risolversi automaticamente, ma se compare frequentemente è necessario controllare l’utilizzo delle risorse e i registri degli errori.
Consulta la guida dedicata all’errore 503 Service Unavailable per verificare risorse, plugin, cron job e operazioni pesanti.
504 Gateway Timeout
Il codice 504 Gateway Timeout indica che un server che funziona da gateway o proxy non ha ricevuto in tempo la risposta da un altro servizio.
Può essere causato da:
- script molto lenti;
- query inefficienti al database;
- servizi esterni che non rispondono;
- importazioni o backup pesanti;
- API non raggiungibili;
- sovraccarico temporaneo;
- problemi di comunicazione tra server.
Non è consigliabile aumentare arbitrariamente i timeout senza aver prima individuato la causa.
Consulta la guida dedicata all’errore 504 Gateway Timeout per controllare registri, risorse e operazioni in esecuzione.
Come individuare la causa di un errore HTTP
Quando compare un errore HTTP, annota sempre:
- il codice visualizzato;
- l’indirizzo completo della pagina;
- la data e l’ora approssimativa;
- l’operazione che stavi eseguendo;
- eventuali modifiche effettuate poco prima;
- la frequenza con cui il problema si presenta.
Se gestisci il sito, controlla inoltre:
- il file
error_log; - la sezione Errori di cPanel;
- l’utilizzo delle risorse;
- plugin e temi aggiornati recentemente;
- il file
.htaccess; - la versione PHP;
- eventuali regole firewall o di sicurezza.
Quando contattare l’assistenza
Contatta l’assistenza Xlogic quando:
- l’errore interessa l’intero sito;
- il problema continua dopo i controlli di base;
- non riesci ad accedere a cPanel;
- il sito risulta sospeso;
- gli errori compaiono frequentemente;
- i registri indicano problemi del server o delle risorse;
- non riesci a identificare il file o il componente responsabile.
Nel ticket indica il dominio, l’URL interessato, il codice HTTP, l’orario del problema e gli eventuali messaggi presenti nei registri. Queste informazioni permettono di effettuare controlli più precisi e rapidi.