Una guida completa e un elenco di codici di stato HTTP

Pubblicato: 2020-02-24

I codici di stato HTTP sono come brevi note di un server che vengono attaccate a una pagina Web. In realtà non fanno parte del contenuto del sito. Invece, sono messaggi dal server che ti informano come sono andate le cose quando ha ricevuto la richiesta di visualizzare una determinata pagina.

Questi tipi di messaggi vengono restituiti ogni volta che il tuo browser interagisce con un server, anche se non li vedi. Se sei il proprietario o uno sviluppatore di un sito web, la comprensione dei codici di stato HT TP è fondamentale. Quando vengono visualizzati, i codici di stato HTTP sono uno strumento prezioso per diagnosticare e correggere gli errori di configurazione del sito Web.

Questo articolo introduce diversi codici di errore e di stato del server e spiega cosa rivelano su ciò che sta accadendo sul server dietro le quinte.

Immergiamoci!

Preferisci guardare la versione video?

Cosa sono i codici di stato HTTP?

Ogni volta che fai clic su un link o digiti un URL e premi Invio , il tuo browser invia una richiesta al server web per il sito a cui stai tentando di accedere. Il server riceve ed elabora la richiesta, quindi restituisce le risorse pertinenti insieme a un'intestazione HTTP.

I codici di stato HTTP vengono inviati al browser nell'intestazione HTTP. Sebbene i codici di stato vengano restituiti ogni volta che il tuo browser richiede una pagina Web o una risorsa, la maggior parte delle volte non li vedi.

Di solito è solo quando qualcosa va storto che potresti vederne uno visualizzato nel tuo browser. Questo è il modo in cui il server dice: “Qualcosa non va. Ecco un codice che spiega cosa è andato storto.

google 404 http status codes
Codice di stato HTTP di Google 404

Se vuoi vedere i codici di stato che normalmente il tuo browser non ti mostra, ci sono molti strumenti diversi che lo rendono facile. Le estensioni del browser sono disponibili per piattaforme adatte agli sviluppatori come Chrome e Firefox e sono disponibili molti strumenti di recupero delle intestazioni basati sul Web come Web Sniffer.

Per visualizzare i codici di stato HTTP con uno di questi strumenti, cerca la riga visualizzata nella parte superiore del rapporto che dice "Stato: HTTP/1.1". Questo sarà seguito dal codice di stato che è stato restituito dal server.

Comprensione delle classi di codice di stato HTTP

I codici di stato HTTP sono divisi in 5 "classi". Questi sono raggruppamenti di risposte che hanno significati simili o correlati. Sapere cosa sono può aiutarti a determinare rapidamente la sostanza generale di un codice di stato prima di cercare il suo significato specifico.

Le cinque classi comprendono:

  • 100s: Codici informativi che indicano che la richiesta avviata dal browser sta proseguendo.
  • 200s: codici di successo restituiti quando la richiesta del browser è stata ricevuta, compresa ed elaborata dal server.
  • 300s: codici di reindirizzamento restituiti quando una nuova risorsa è stata sostituita con la risorsa richiesta.
  • 400s: codici di errore del client che indicano che si è verificato un problema con la richiesta.
  • 500s: codici di errore del server che indicano che la richiesta è stata accettata, ma che un errore sul server ha impedito l'adempimento della richiesta.

All'interno di ciascuna di queste classi esiste una varietà di codici server che possono essere restituiti dal server. Ogni singolo codice ha un significato specifico e univoco, che tratteremo nell'elenco più completo di seguito.

Perché i codici di stato HTTP e gli errori sono importanti per l'ottimizzazione dei motori di ricerca (SEO)

I bot dei motori di ricerca vedono i codici di stato HTTP durante la scansione del tuo sito. In alcuni casi, questi messaggi possono influenzare se e come le tue pagine vengono indicizzate, nonché come i motori di ricerca percepiscono la salute del tuo sito.

In generale, i codici di stato HTTP di livello 100 e 200 non avranno molto impatto sulla tua SEO. Segnalano che tutto funziona come dovrebbe sul tuo sito e consentono ai robot dei motori di ricerca di continuare la loro strada. Tuttavia, non aumenteranno nemmeno le tue classifiche.

Per la maggior parte, sono i codici di livello superiore che contano per la SEO. Le risposte di livello 400 e 500 possono impedire ai bot di eseguire la scansione e l'indicizzazione delle tue pagine. Troppi di questi errori possono anche indicare che il tuo sito non è di alta qualità, probabilmente abbassando le tue classifiche.

I codici a 300 livelli hanno una relazione un po' più complicata con la SEO. La cosa principale che devi sapere per comprendere il loro impatto è la differenza tra reindirizzamenti permanenti e temporanei, che tratteremo più in dettaglio nella sezione pertinente di seguito.

In poche parole, tuttavia, i reindirizzamenti permanenti condividono l'equità dei link dai backlink, ma quelli temporanei no. In altre parole, quando utilizzi reindirizzamenti temporanei per le pagine che si sono spostate, perdi il vantaggio SEO di tutto il link building che hai fatto.

Verifica dei codici di stato HTTP in Google Search Console

Un modo per monitorare il modo in cui Google percepisce i codici di stato HTTP sul tuo sito è utilizzare Google Search Console. È possibile visualizzare i codici di stato di livello 300, 400 e 500 nel rapporto Copertura :

copertura della console di ricerca
Rapporto sulla copertura di Google Search Console

Quest'area della dashboard mostra quattro tipi di contenuti sul tuo sito:

  • Pagine che restituiscono errori.
  • Pagine valide con avvisi.
  • Risorse valide.
  • Contenuto escluso dall'indice.

È possibile trovare pagine con codici di stato HTTP di livello 300, 400 e 500 nelle sezioni Escluso , Errore o Valido con avvisi , a seconda del tipo di codice. Ad esempio, i reindirizzamenti 301 possono essere elencati in Esclusi come Pagina con reindirizzamento :

reindirizzamento della console di ricerca
Una pagina con un reindirizzamento nel rapporto sulla copertura di Google Search Console.

È probabile che i codici di stato di livello 400 e 500 vengano visualizzati in Error .

Un altro modo per visualizzare i codici di stato HTTP è utilizzare lo strumento Controllo URL . Se Google non è in grado di indicizzare una pagina specifica a causa di un errore, lo vedrai qui:

console di ricerca 404
Un errore 404 nello strumento Controllo URL di Google Search Console

Per ulteriori suggerimenti sull'utilizzo di Google Search Console, consulta la nostra guida completa alla piattaforma.

Una guida completa e un elenco di codici di stato HTTP

Sebbene ci siano oltre 40 diversi codici di stato del server, probabilmente ne incontrerai meno di una dozzina su base regolare. Di seguito, abbiamo trattato quelli più comuni, nonché alcuni dei codici più oscuri che potresti ancora incontrare.

Bloccato da un codice di stato HTTP? I nostri esperti di WordPress sono in attesa. Prova Kinsta gratuitamente.

100 codici di stato

Un codice di stato a 100 livelli ti dice che la richiesta che hai fatto al server è ancora in corso per qualche motivo. Questo non è necessariamente un problema, sono solo informazioni extra per farti sapere cosa sta succedendo.

  • 100: "Continua". Ciò significa che il server in questione ha ricevuto le intestazioni della richiesta del tuo browser ed è ora pronto per l'invio anche del corpo della richiesta. Ciò rende il processo di richiesta più efficiente poiché impedisce al browser di inviare una richiesta del corpo anche se le intestazioni sono state rifiutate.
  • 101: “Protocolli di commutazione”. Il tuo browser ha chiesto al server di modificare i protocolli e il server ha rispettato.
  • 103: “I primi accenni”. Ciò restituisce alcune intestazioni di risposta prima che il resto della risposta del server sia pronto.

200 codici di stato

Questo è il miglior tipo di codice di stato HTTP da ricevere. Una risposta a 200 livelli significa che tutto funziona esattamente come dovrebbe.

  • 200: "Va tutto bene". Questo è il codice che viene consegnato quando una pagina Web o una risorsa si comporta esattamente nel modo previsto.
  • 201: "Creato". Il server ha soddisfatto la richiesta del browser e, di conseguenza, ha creato una nuova risorsa.
  • 202: “Accettato”. Il server ha accettato la richiesta del tuo browser ma la sta ancora elaborando. La richiesta alla fine può o non può comportare una risposta completa.
  • 203: “Informazioni non autorevoli”. Questo codice di stato può essere visualizzato quando è in uso un proxy. Significa che il server proxy ha ricevuto un codice di stato 200 "Va tutto bene" dal server di origine, ma ha modificato la risposta prima di passarla al browser.
  • 204: "Nessun contenuto". Questo codice significa che il server ha elaborato correttamente la richiesta, ma non restituirà alcun contenuto.
  • 205: "Ripristina contenuto". Come un codice 204, questo significa che il modo in cui il server ha elaborato la richiesta ma non restituirà alcun contenuto. Tuttavia, richiede anche che il browser reimposti la visualizzazione del documento.
  • 206: “Contenuto parziale”. Potresti visualizzare questo codice di stato se il tuo client HTTP (noto anche come browser) utilizza "intestazioni di intervallo". Ciò consente al browser di riprendere i download sospesi, nonché di dividere un download in più flussi. Viene inviato un codice 206 quando un'intestazione di intervallo fa sì che il server invii solo una parte della risorsa richiesta.

300 codici di stato

Il reindirizzamento è il processo utilizzato per comunicare che una risorsa è stata spostata in una nuova posizione. Esistono diversi codici di stato HTTP che accompagnano i reindirizzamenti, al fine di fornire ai visitatori informazioni su dove trovare il contenuto che stanno cercando.

  • 300: "Scelte multiple". A volte, potrebbero esserci più risorse possibili con cui il server può rispondere per soddisfare la richiesta del tuo browser. Un codice di stato 300 significa che ora il tuo browser deve scegliere tra di loro. Ciò può verificarsi quando sono disponibili più estensioni del tipo di file o se il server sta riscontrando una disambiguazione del senso delle parole.
  • 301: “La risorsa richiesta è stata spostata definitivamente”. Questo codice viene consegnato quando una pagina Web o una risorsa è stata sostituita in modo permanente con una risorsa diversa. Viene utilizzato per il reindirizzamento URL permanente.
  • 302: “La risorsa richiesta è stata spostata, ma è stata trovata.” Questo codice viene utilizzato per indicare che la risorsa richiesta è stata trovata, ma non nella posizione in cui era prevista. Viene utilizzato per il reindirizzamento URL temporaneo.
  • 303: “Vedi altro”. Per comprendere un codice di stato 303 è necessario conoscere la differenza tra i quattro metodi di richiesta HTTP primari. In sostanza, un codice 303 dice al tuo browser che ha trovato la risorsa richiesta dal tuo browser tramite POST, PUT o DELETE. Tuttavia, per recuperarlo utilizzando GET, è necessario effettuare la richiesta appropriata a un URL diverso da quello utilizzato in precedenza.
  • 304: “La risorsa richiesta non è stata modificata dall'ultimo accesso”. Questo codice dice al browser che le risorse memorizzate nella cache del browser non sono cambiate. Viene utilizzato per accelerare la consegna delle pagine Web riutilizzando le risorse scaricate in precedenza.
  • 307: “Reindirizzamento temporaneo”. Questo codice di stato ha sostituito 302 "Trovato" come azione appropriata quando una risorsa è stata temporaneamente spostata su un URL diverso. A differenza del codice di stato 302, non consente la modifica del metodo HTTP.
  • 308: "Reindirizzamento permanente". Il codice di stato 308 è il successore del codice 301 "Spostato in modo permanente". Non consente la modifica del metodo HTTP e indica che la risorsa richiesta ora si trova permanentemente in un nuovo URL.

400 codici di stato

Al livello 400, i codici di stato HTTP iniziano a diventare problematici. Questi sono codici di errore che specificano che c'è un errore nel browser e/o nella richiesta.

  • 400: "Richiesta errata". Il server non può restituire una risposta a causa di un errore sul lato client. Consulta la nostra guida per risolvere questo errore.
  • 401: “Non autorizzato” o “Autorizzazione richiesta”. Viene restituito dal server quando la risorsa di destinazione non dispone di credenziali di autenticazione valide. Potresti vederlo se hai impostato l'autenticazione HTTP di base usando htpasswd.
Errore di autorizzazione Nginx 401 richiesta in Chrome
Errore di autorizzazione Nginx 401 richiesta in Chrome
  • 402: “Pagamento richiesto”. Originariamente, questo codice è stato creato per essere utilizzato come parte di un sistema di cassa digitale. Tuttavia, quel piano non è mai andato a buon fine. Viene invece utilizzato da una varietà di piattaforme per indicare che una richiesta non può essere soddisfatta, di solito a causa della mancanza di fondi richiesti. Le istanze comuni includono:
    • Hai raggiunto il limite giornaliero di richieste all'API Google Developers.
    • Non hai pagato le commissioni Shopify e il tuo negozio è stato temporaneamente disattivato.
    • Il tuo pagamento tramite Stripe non è andato a buon fine o Stripe sta cercando di prevenire un pagamento fraudolento.
  • 403: “Vietato l'accesso a tale risorsa”. Questo codice viene restituito quando un utente tenta di accedere a qualcosa che non dispone dell'autorizzazione per visualizzare. Ad esempio, il tentativo di raggiungere un contenuto protetto da password senza accedere potrebbe produrre un errore 403.
  • 404: “La risorsa richiesta non è stata trovata.” Questo è il messaggio di errore più comune di tutti. Questo codice significa che la risorsa richiesta non esiste e il server non sa se è mai esistita.
  • 405: “Metodo non consentito”. Viene generato quando il server di hosting (server di origine) supporta il metodo ricevuto, ma non la risorsa di destinazione.
  • 406: “Risposta non accettabile”. La risorsa richiesta è in grado di generare solo contenuto non accettabile in base alle intestazioni di accettazione inviate nella richiesta.
  • 407: "Autenticazione proxy richiesta". È in uso un server proxy e richiede l'autenticazione del browser prima di continuare.
  • 408: "Timeout del server in attesa del resto della richiesta dal browser." Questo codice viene generato quando un server va in timeout durante l'attesa della richiesta completa dal browser. In altre parole, il server non ha ricevuto l'intera richiesta inviata dal browser. Una possibile causa potrebbe essere la congestione della rete con conseguente perdita di pacchetti di dati tra il browser e il server.
  • 409: "Conflitto". Un codice di stato 409 significa che il server non ha potuto elaborare la richiesta del tuo browser perché c'è un conflitto con la risorsa pertinente. Questo a volte si verifica a causa di più modifiche simultanee.
  • 410: “La risorsa richiesta è sparita e non tornerà più”. Questo è simile a un codice 404 "Non trovato", tranne per il fatto che un 410 indica che la condizione è prevista e permanente.
  • 411: "Lunghezza richiesta". Ciò significa che la risorsa richiesta richiede che il client specifichi una certa lunghezza e che non l'ha fatto.
  • 412: "Presupposto non riuscito". Il tuo browser includeva determinate condizioni nelle intestazioni delle richieste e il server non soddisfaceva tali specifiche.
  • 413: "Carico utile troppo grande" o "Entità richiesta troppo grande". La tua richiesta è più grande di quanto il server sia disposto o in grado di elaborare.
  • 414: "URI troppo lungo". Questo è in genere il risultato di una richiesta GET che è stata codificata come una stringa di query troppo grande per l'elaborazione da parte del server.
  • 415: "Tipo di supporto non supportato". La richiesta include un tipo di supporto che il server o la risorsa non supporta.
  • 416: “Intervallo non soddisfacente”. La tua richiesta riguardava una parte di una risorsa che il server non è in grado di restituire.
  • 417: “Attesa fallita”. Il server non è in grado di soddisfare i requisiti specificati nel campo dell'intestazione attesa della richiesta.
  • 418: “Sono una teiera”. Questo codice viene restituito dalle teiere che ricevono richieste per preparare il caffè. È anche un pesce d'aprile del 1998.
sono un codice di stato http di teiera
418 Codice di stato “Sono una teiera”.
  • 422: “Entità non processabile”. La richiesta del client contiene errori semantici e il server non può elaborarla.
  • 425: "Troppo presto". Questo codice viene inviato quando il server non è disposto a elaborare una richiesta perché potrebbe essere riprodotta.
  • 426: "Aggiornamento richiesto". A causa del contenuto del campo di intestazione di aggiornamento della richiesta, il client dovrebbe passare a un protocollo diverso.
  • 428: “Presupposto richiesto”. Il server richiede che le condizioni siano specificate prima di elaborare la richiesta.
  • 429: “Troppe richieste”. Questo viene generato dal server quando l'utente ha inviato troppe richieste in un determinato periodo di tempo (limitante della velocità). Questo a volte può verificarsi a causa di bot o script che tentano di accedere al tuo sito. In questo caso, potresti provare a modificare l'URL di accesso di WordPress. Puoi anche consultare la nostra guida per correggere un errore 429 "Troppe richieste".
429 troppe richieste
429 troppe richieste
  • 431: "Campi di intestazione della richiesta troppo grandi". Il server non può elaborare la richiesta perché i campi dell'intestazione sono troppo grandi. Ciò potrebbe indicare un problema con un singolo campo di intestazione o tutti insieme.
  • 451: “Non disponibile per motivi legali”. L'operatore del server ha ricevuto una richiesta per vietare l'accesso alla risorsa che hai richiesto (o a un insieme di risorse inclusa quella che hai richiesto). Curiosità: questo codice è un riferimento al romanzo di Ray Bradbury Fahrenheit 451 .
  • 499: “Richiesta chiusa del cliente”. Questo viene restituito da NGINX quando il client chiude la richiesta mentre Nginx la sta ancora elaborando.

Bloccato da un codice di stato HTTP? I nostri esperti di WordPress sono in attesa. Prova Kinsta gratuitamente.

500 codici di stato

Anche i codici di stato a 500 livelli sono considerati errori. Tuttavia, indicano che il problema è alla fine del server. Questo può renderli più difficili da risolvere.

  • 500: "Si è verificato un errore sul server e non è stato possibile completare la richiesta." Questo è un codice generico che significa semplicemente "errore interno del server". Qualcosa è andato storto sul server e la risorsa richiesta non è stata consegnata. Questo codice è in genere generato da plug-in di terze parti, PHP difettoso o persino dall'interruzione della connessione al database. Dai un'occhiata ai nostri tutorial su come correggere l'errore che stabilisce una connessione al database e altri modi per risolvere un errore interno del server 500.
errore nello stabilire una connessione col database
errore nello stabilire una connessione col database
  • 501: "Non implementato". Questo errore indica che il server non supporta la funzionalità richiesta per soddisfare la richiesta. Questo è quasi sempre un problema sul server web stesso e di solito deve essere risolto dall'host. Dai un'occhiata ai nostri consigli su come risolvere un errore 501 non implementato.
  • 502: "Bad Gateway". Questo codice di errore in genere significa che un server ha ricevuto una risposta non valida da un altro, ad esempio quando è in uso un server proxy. Altre volte una query o una richiesta richiederà troppo tempo e quindi viene annullata o interrotta dal server e la connessione al database si interrompe. Per maggiori dettagli, consulta il nostro tutorial approfondito su come correggere l'errore 502 Bad Gateway.
  • 503: "Il server non è disponibile per gestire questa richiesta in questo momento." La richiesta non può essere completata in questo momento. Questo codice può essere restituito da un server sovraccarico che non è in grado di gestire richieste aggiuntive. Abbiamo una guida completa su come correggere l'errore 503 servizio non disponibile.
  • 504: "Il server, fungendo da gateway, è scaduto in attesa della risposta di un altro server." Questo è il codice restituito quando sono presenti due server coinvolti nell'elaborazione di una richiesta e il primo server scade in attesa che il secondo server risponda. Puoi leggere di più su come correggere gli errori 504 nella nostra guida dedicata.
  • 505: "Versione HTTP non supportata". Il server non supporta la versione HTTP utilizzata dal client per effettuare la richiesta.
  • 508 : " Il limite di risorse è stato raggiunto" sono stati raggiunti i limiti di risorse impostati dal tuo host web. Dai un'occhiata al nostro tutorial su come risolvere l'errore "508 Limite risorse raggiunto".
  • 511: "Autenticazione di rete richiesta". Questo codice di stato viene inviato quando la rete che stai tentando di utilizzare richiede una qualche forma di autenticazione prima di inviare la tua richiesta al server. Ad esempio, potrebbe essere necessario accettare i Termini e le condizioni di un hotspot Wi-Fi pubblico.
  • 521: "Il server Web è inattivo". L'errore 521 è un messaggio di errore specifico di Cloudflare. Significa che il tuo browser web è stato in grado di connettersi correttamente a Cloudflare, ma Cloudflare non è stato in grado di connettersi al server web di origine.
  • 525 : "Stretta di mano SSL non riuscita". L'errore 525 indica che l'handshake SSL tra un dominio che utilizza Cloudflare e il server Web di origine non è riuscito. Se riscontri problemi, ci sono cinque metodi che puoi provare a correggere facilmente l'errore 525.

Dove saperne di più sui codici di stato HTTP

Oltre ai codici di stato HTTP che abbiamo trattato in questo elenco, ce ne sono altri oscuri che potresti voler conoscere. Ci sono diverse risorse che puoi consultare per leggere questi codici più rari, tra cui:

  • Questo elenco completo di codici di stato HTTP da Wikipedia.
  • Definizioni del codice di stato da Internet Engineering Task Force (IETF).
  • RFC 7231.

Conoscere questi codici di stato può aiutarti a risolvere alcuni problemi unici mantenendo il tuo sito Web o anche quando li incontri su altri siti.

All'inizio potrebbero sembrare intimidatori, ma i codici di stato HTTP sono importanti per capire cosa sta succedendo sul tuo sito. Ecco un elenco completo di quelli con cui dovresti familiarizzare! Clicca per twittare

Sommario

Sebbene possano sembrare confusi o intimidatori in superficie, i codici di stato HTTP sono in realtà molto informativi. Imparando alcuni di quelli comuni, puoi risolvere i problemi sul tuo sito più rapidamente.

In questo post, abbiamo definito oltre 40 codici di stato HTTP che potresti incontrare. Dai codici di livello 100 e 200 più miti agli errori di livello 400 e 500 più complicati, dare un senso a questi messaggi è fondamentale per mantenere il tuo sito Web e assicurarti che sia accessibile agli utenti.