I codici di stato HTTP sono il modo in cui Internet comunica tra server e client. Ogni volta che il tuo browser richiede una pagina web, un’API effettua una chiamata o un server elabora dati, questi codici a tre cifre ti dicono esattamente cosa è successo. Comprendere questi codici è essenziale per sviluppatori web, specialisti SEO e chiunque lavori con tecnologie web.

Questa guida completa copre tutti i codici di stato HTTP standard da 100 a 511, organizzati per categoria. Ogni codice di stato include spiegazioni pratiche, casi d’uso reali, indicazioni per l’implementazione e insidie comuni da evitare.

Riferimento Rapido ai Codici di Stato HTTP

Codice di Stato Nome Categoria Vai a
100 Continue Informational Dettagli
101 Switching Protocols Informational Dettagli
102 Processing Informational Dettagli
103 Early Hints Informational Dettagli
200 OK Success Dettagli
201 Created Success Dettagli
202 Accepted Success Dettagli
203 Non-Authoritative Information Success Dettagli
204 No Content Success Dettagli
205 Reset Content Success Dettagli
206 Partial Content Success Dettagli
207 Multi-Status Success Dettagli
208 Already Reported Success Dettagli
226 IM Used Success Dettagli
300 Multiple Choices Redirection Dettagli
301 Moved Permanently Redirection Dettagli
302 Found Redirection Dettagli
303 See Other Redirection Dettagli
304 Not Modified Redirection Dettagli
305 Use Proxy (Deprecated) Redirection Dettagli
307 Temporary Redirect Redirection Dettagli
308 Permanent Redirect Redirection Dettagli
400 Bad Request Client Error Dettagli
401 Unauthorized Client Error Dettagli
403 Forbidden Client Error Dettagli
404 Not Found Client Error Dettagli
405 Method Not Allowed Client Error Dettagli
406 Not Acceptable Client Error Dettagli
407 Proxy Authentication Required Client Error Dettagli
408 Request Timeout Client Error Dettagli
409 Conflict Client Error Dettagli
410 Gone Client Error Dettagli
418 I’m a teapot Client Error Dettagli
422 Unprocessable Entity Client Error Dettagli
429 Too Many Requests Client Error Dettagli
451 Unavailable For Legal Reasons Client Error Dettagli
500 Internal Server Error Server Error Dettagli
501 Not Implemented Server Error Dettagli
502 Bad Gateway Server Error Dettagli
503 Service Unavailable Server Error Dettagli
504 Gateway Timeout Server Error Dettagli
505 HTTP Version Not Supported Server Error Dettagli
507 Insufficient Storage Server Error Dettagli
508 Loop Detected Server Error Dettagli
511 Network Authentication Required Server Error Dettagli

Risposte Informative 1xx

Questi codici indicano che la richiesta è stata ricevuta e il processo continua.

Cos’è un codice di stato 100?

HTTP: 100 Continue

Quando e perché i server lo restituiscono: Il server sta dicendo “Ho ricevuto la prima parte della tua richiesta, e sembra buona finora - vai avanti e invia il resto!” Questo accade quando stai cercando di caricare qualcosa di grande (come un video), e il server vuole verificare se sei autorizzato a caricare prima che tu sprechi tempo inviando l’intero file.

Casi d’uso pratici: Caricamento di file di grandi dimensioni su cloud storage dove il server verifica prima se hai abbastanza spazio, invio di grandi form dove il server convalida il tuo login prima di accettare tutti i dati, o qualsiasi situazione in cui ha senso controllare i permessi prima di trasferire molti dati.

Come dovrebbero rispondere i client a questo stato: Il tuo browser o app dovrebbe immediatamente iniziare a inviare il resto dei dati. La maggior parte delle volte, questo accade automaticamente dietro le quinte - non te ne accorgerai nemmeno.

Usi impropri o implementazioni errate: Inviare questo a vecchi browser che non lo capiscono, inviarlo casualmente quando nessuno lo ha chiesto, o dimenticare di verificare se il client vuole effettivamente questo processo in due fasi prima di usarlo.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 101?

HTTP: 101 Switching Protocols

Quando e perché i server lo restituiscono: Il server accetta di cambiare il modo in cui comunica con te. È come passare da messaggi di testo a una telefonata - hai chiesto di aggiornare la connessione, e il server ha detto “Certo, facciamolo!”

Casi d’uso pratici: Quando un’applicazione di chat si aggiorna da HTTP normale a WebSocket per messaggistica in tempo reale, quando un browser chiede di usare una versione più veloce di HTTP, o quando qualsiasi applicazione ha bisogno di passare a un metodo di comunicazione diverso per funzionalità migliori.

Come dovrebbero rispondere i client a questo stato: Iniziare immediatamente ad usare il nuovo protocollo di comunicazione. È come cambiare lingua a metà conversazione - una volta che entrambi siete d’accordo, iniziate a parlare la nuova lingua subito.

Usi impropri o implementazioni errate: Cambiare senza essere stati chiesti, cercare di passare a qualcosa che il server non supporta effettivamente, o dimenticare di specificare a quale protocollo si sta passando.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 102?

HTTP: 102 Processing

Quando e perché i server lo restituiscono: Il server sta dicendo “Sto ancora lavorando sulla tua richiesta - non mollare!” Questo viene usato quando qualcosa richiede molto tempo per essere elaborato, quindi il server invia questo messaggio per impedirti di pensare che si sia bloccato.

Casi d’uso pratici: Conversione di un grande file video in un formato diverso, elaborazione di centinaia di file contemporaneamente, esecuzione di report complessi che richiedono minuti per essere generati, o qualsiasi operazione che richiede più tempo del solito per essere completata.

Come dovrebbero rispondere i client a questo stato: Continuare ad aspettare pazientemente. Il server potrebbe inviare diversi di questi messaggi “ancora in elaborazione” prima di darti finalmente il risultato effettivo. Non ripetere la richiesta - questo riavvierebbe l’intero processo da capo.

Usi impropri o implementazioni errate: Usare questo per operazioni veloci che non ne hanno bisogno, inviare troppi messaggi “ancora in elaborazione”, o dimenticare di inviare la risposta finale dopo aver detto che stai elaborando.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 103?

HTTP: 103 Early Hints

Quando e perché i server lo restituiscono: Il server ti sta dando un’anticipazione sulle risorse di cui probabilmente avrai bisogno presto. È come un ristorante che ti dice “mentre preparo il tuo ordine, potresti voler prendere i tovaglioli e le posate.”

Casi d’uso pratici: Dire ai browser di iniziare a caricare file CSS e JavaScript mentre il server prepara l’HTML, precaricare i font di cui la pagina avrà bisogno, o riscaldare connessioni ad altri server che la pagina userà.

Come dovrebbero rispondere i client a questo stato: Iniziare a caricare le risorse suggerite in background mentre si aspetta la risposta reale. Questo fa sentire le pagine più veloci perché parte del lavoro inizia presto.

Usi impropri o implementazioni errate: Inviare suggerimenti ma non inviare mai la risposta effettiva, suggerire risorse che non sono effettivamente necessarie, o sovraccaricare il client con troppi suggerimenti di precaricamento non necessari.

Documentazione Mozilla.org per riferimento aggiuntivo


Successo 2xx

Questi codici indicano che la richiesta è stata ricevuta, compresa e accettata con successo.

Cos’è un codice di stato 200?

HTTP: 200 OK

Quando e perché i server lo restituiscono: Questa è la risposta “tutto ha funzionato perfettamente”. Il server ha trovato quello che volevi, ha fatto quello che hai chiesto, ed ecco il tuo risultato. È il messaggio di successo più comune che vedrai.

Casi d’uso pratici: Caricamento di qualsiasi pagina web con successo, ottenere dati da un’API, scaricare un file, inviare un modulo che ha funzionato correttamente, o fondamentalmente ogni volta che una richiesta ha successo senza problemi.

Come dovrebbero rispondere i client a questo stato: Usare i dati che sono tornati - mostrare la pagina web, elaborare i dati JSON, salvare il file, o qualunque cosa abbia senso per la tua applicazione. Questa è la risposta “normale” che tutto è progettato per gestire.

Usi impropri o implementazioni errate: Dire “200 OK” ma includere un messaggio di errore nella risposta (confusione!), usare 200 quando hai creato qualcosa di nuovo (usa invece 201), o restituire 200 senza dati quando i dati erano previsti.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 201?

HTTP: 201 Created

Quando e perché i server lo restituiscono: Il server ha creato con successo qualcosa di nuovo in base alla tua richiesta. Non è solo “OK” - è specificamente “Ho fatto la nuova cosa che hai chiesto!”

Casi d’uso pratici: Creazione di un nuovo account utente, pubblicazione di un nuovo tweet o aggiornamento di stato, caricamento di un file che viene salvato come nuova risorsa, aggiunta di un nuovo prodotto a un carrello, o ogni volta che la tua richiesta risulta in qualcosa di nuovo che viene memorizzato.

Come dovrebbero rispondere i client a questo stato: Cercare l’header Location che di solito ti dice dove trovare la cosa appena creata. Potresti reindirizzare alla nuova risorsa o aggiornare la tua UI per mostrare che la creazione è riuscita.

Usi impropri o implementazioni errate: Usare 201 quando si aggiornano cose esistenti (è per questo che c’è 200), dimenticare di includere la posizione della nuova risorsa, o usare 201 quando non è stato effettivamente creato nulla.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 202?

HTTP: 202 Accepted

Quando e perché i server lo restituiscono: Il server ha accettato la tua richiesta ma non ha ancora finito di elaborarla. È come lasciare i vestiti in lavanderia - hanno preso i tuoi vestiti e ti hanno dato una ricevuta, ma il lavaggio non è ancora fatto.

Casi d’uso pratici: Invio di email (accettate per la consegna ma non ancora inviate), avvio di una grande esportazione di dati che sarà inviata via email quando pronta, lavori di elaborazione video, o qualsiasi attività che viene messa in coda per l’elaborazione successiva.

Come dovrebbero rispondere i client a questo stato: Non aspettarsi risultati immediati. Avrai bisogno di qualche altro modo per verificare se il lavoro è completato - forse interrogare un altro endpoint, aspettare un’email, o verificare una notifica webhook.

Usi impropri o implementazioni errate: Usare 202 per cose che sono effettivamente già completate, non fornire alcun modo per controllare lo stato successivamente, o usare 202 quando l’attività potrebbe fallire (senza avvertire il client di questa possibilità).

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 203?

HTTP: 203 Non-Authoritative Information

Quando e perché i server lo restituiscono: La richiesta è riuscita, ma la risposta è stata modificata da qualcosa nel mezzo (come un proxy o una cache). È come giocare al telefono senza fili - il messaggio è arrivato, ma potrebbe essere cambiato leggermente lungo il percorso.

Casi d’uso pratici: Quando un proxy aziendale aggiunge o rimuove determinati header, quando un server di caching modifica le risposte per risparmiare banda, o quando i filtri di contenuto regolano quello che vedi in base alle politiche.

Come dovrebbero rispondere i client a questo stato: Usare la risposta normalmente, ma sapere che potrebbe non essere esattamente quello che il server originale ha inviato. È ancora valida, solo potenzialmente modificata.

Usi impropri o implementazioni errate: Non essere trasparenti sulle modifiche, usare 203 quando nulla è stato effettivamente cambiato, o modificare le risposte in modi che rompono la funzionalità.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 204?

HTTP: 204 No Content

Quando e perché i server lo restituiscono: Il server ha fatto con successo quello che hai chiesto ma non ha nulla da restituire. È come eliminare con successo qualcosa - l’eliminazione ha funzionato, ma non c’è niente da mostrarti perché è sparito!

Casi d’uso pratici: Eliminazione di record, aggiornamento di impostazioni dove non hai bisogno di dati di conferma indietro, salvataggio di preferenze silenziosamente in background, o qualsiasi azione di successo dove un corpo della risposta sarebbe inutile.

Come dovrebbero rispondere i client a questo stato: Trattarlo come successo ma non aspettarsi dati. Perfetto per richieste AJAX dove hai solo bisogno di sapere che qualcosa ha funzionato. La pagina non dovrebbe aggiornarsi o cambiare a meno che il tuo JavaScript decida di aggiornare qualcosa.

Usi impropri o implementazioni errate: Includere dati di risposta con un 204 (non è permesso!), usare 204 quando il client probabilmente vuole vedere i dati aggiornati, o usare 204 per errori.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 205?

HTTP: 205 Reset Content

Quando e perché i server lo restituiscono: Il server sta dicendo alla tua applicazione di cancellare il suo modulo o ripristinare la sua vista. È come inviare con successo un sondaggio e avere il modulo che si cancella automaticamente per la prossima persona.

Casi d’uso pratici: Dopo aver inviato un modulo di inserimento dati che deve essere utilizzato ripetutamente, completamento di un sondaggio che dovrebbe ripristinarsi per il prossimo rispondente, o qualsiasi situazione in cui l’UI dovrebbe tornare al suo stato iniziale dopo il successo.

Come dovrebbero rispondere i client a questo stato: Cancellare tutti i campi del modulo, ripristinare la vista del documento, o riportare l’interfaccia al suo stato originale. Nessun dato viene con questa risposta - è solo un’istruzione per ripristinare.

Usi impropri o implementazioni errate: Inviare dati con una risposta 205 (dovrebbe essere vuota), usare 205 quando non vuoi effettivamente che il modulo venga cancellato, o usarlo quando un semplice 204 sarebbe migliore.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 206?

HTTP: 206 Partial Content

Quando e perché i server lo restituiscono: Il server sta inviando solo parte del file perché è quello che hai chiesto. È come chiedere le pagine 50-60 di un libro invece dell’intero libro.

Casi d’uso pratici: Streaming di video dove puoi saltare a parti diverse, ripresa di download interrotti da dove si sono fermati, download di file di grandi dimensioni in blocchi, o implementazione di funzionalità “carica altro” in modo efficiente.

Come dovrebbero rispondere i client a questo stato: Elaborare il contenuto parziale e potenzialmente richiedere altre parti se necessario. I lettori video usano questo per la ricerca, e i gestori di download lo usano per riprendere.

Usi impropri o implementazioni errate: Inviare 206 quando nessuno ha chiesto contenuto parziale, inviare l’intervallo di byte sbagliato, non supportare richieste di intervallo quando sarebbero utili, o confondere gli header Content-Range.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 207?

HTTP: 207 Multi-Status

Quando e perché i server lo restituiscono: Sono state eseguite più operazioni e ognuna ha il proprio risultato. È come inviare un lotto di candidature per lavoro e ricevere risposte individuali per ognuna in un’unica busta.

Casi d’uso pratici: Operazioni in blocco dove stai aggiornando più elementi contemporaneamente, operazioni WebDAV su più file, richieste API in batch, o ogni volta che hai bisogno di riportare risultati individuali per più operazioni.

Come dovrebbero rispondere i client a questo stato: Analizzare il corpo della risposta (di solito XML) per vedere il risultato individuale per ogni operazione. Alcuni potrebbero essere riusciti mentre altri sono falliti, e devi gestire ognuno appropriatamente.

Usi impropri o implementazioni errate: Usare 207 per operazioni singole, non strutturare correttamente la risposta multi-stato, o usarlo quando tutte le operazioni hanno avuto lo stesso risultato (usa semplicemente quel singolo codice di stato invece).

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 208?

HTTP: 208 Already Reported

Quando e perché i server lo restituiscono: In una risposta multi-stato, questo indica che le informazioni su questa risorsa erano già incluse prima. È come dire “vedi sopra” per evitare di ripeterti.

Casi d’uso pratici: Quando si elencano contenuti di directory che includono collegamenti simbolici, prevenzione di loop infiniti in operazioni ricorsive, o evitare informazioni duplicate in risposte WebDAV complesse.

Come dovrebbero rispondere i client a questo stato: Saltare l’elaborazione di questa risorsa poiché l’hai già gestita prima nella risposta. Questo previene il doppio processing e loop infiniti.

Usi impropri o implementazioni errate: Usare 208 al di fuori di contesti multi-stato appropriati, contrassegnare cose come “già riportate” quando non lo erano, o creare risposte confuse abusando di questo stato.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 226?

HTTP: 226 IM Used

Quando e perché i server lo restituiscono: Il server ha applicato una o più trasformazioni alla risposta. È come ordinare un documento e ricevere una versione compressa o ottimizzata per risparmiare banda.

Casi d’uso pratici: Codifica delta dove vengono inviati solo i cambiamenti dall’ultima volta, sistemi di compressione che trasformano il contenuto al volo, o qualsiasi trasformazione per risparmiare banda che il client ha richiesto.

Come dovrebbero rispondere i client a questo stato: Elaborare il contenuto trasformato usando il metodo indicato negli header. Il client deve capire la trasformazione per usare correttamente la risposta.

Usi impropri o implementazioni errate: Usare 226 senza indicare quali trasformazioni sono state applicate, applicare trasformazioni che il client non ha richiesto, o usare 226 per compressione standard (che non ha bisogno di uno stato speciale).

Documentazione Mozilla.org per riferimento aggiuntivo


Reindirizzamento 3xx

Questi codici indicano che è necessaria un’ulteriore azione per completare la richiesta.

Cos’è un codice di stato 300?

HTTP: 300 Multiple Choices

Quando e perché i server lo restituiscono: Ci sono più versioni della risorsa richiesta e il server non può sceglierne una automaticamente. È come chiedere “il manuale” quando ci sono versioni in lingue diverse.

Casi d’uso pratici: Quando il contenuto è disponibile in più lingue o formati, quando ci sono versioni diverse per dispositivi diversi, o quando il server genuinamente non può decidere quale versione vuoi.

Come dovrebbero rispondere i client a questo stato: Presentare le scelte all’utente o sceglierne una in base alle preferenze (come le impostazioni della lingua). La risposta dovrebbe elencare tutte le opzioni disponibili.

Usi impropri o implementazioni errate: Usare 300 quando il server potrebbe ragionevolmente scegliere un default, non presentare chiaramente le scelte disponibili, o usarlo per semplici reindirizzamenti (usa invece 301/302).

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 301?

HTTP: 301 Moved Permanently

Quando e perché i server lo restituiscono: La risorsa si è spostata permanentemente a un nuovo indirizzo. È come quando un’azienda si trasferisce in una nuova sede e mette un cartello di inoltro permanente - aggiorna la tua rubrica!

Casi d’uso pratici: Quando i siti web ristrutturano i loro URL permanentemente, passaggio da HTTP a HTTPS, quando le aziende si rebrandizzano e cambiano domini, o consolidamento di più pagine in una per una migliore organizzazione.

Come dovrebbero rispondere i client a questo stato: Andare automaticamente al nuovo URL e ricordarlo per la prossima volta. I browser aggiornano i segnalibri, e i motori di ricerca aggiornano i loro indici per puntare alla nuova posizione.

Usi impropri o implementazioni errate: Usare 301 per spostamenti temporanei (usa invece 302), creare catene di reindirizzamenti che fanno rimbalzare gli utenti, o usare 301 quando potresti volerlo cambiare di nuovo più tardi.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 302?

HTTP: 302 Found

Quando e perché i server lo restituiscono: La risorsa è temporaneamente in una posizione diversa. È come un cartello di un negozio che dice “Oggi siamo al mercato” - torneranno al loro posto normale domani.

Casi d’uso pratici: Reindirizzamento degli utenti durante la manutenzione del sito, A/B testing dove alcuni utenti vanno a una versione diversa, promozioni stagionali che reindirizzano a pagine speciali, o bilanciamento del carico tra server.

Come dovrebbero rispondere i client a questo stato: Andare alla posizione temporanea per ora, ma continuare a usare l’URL originale per richieste future. Non aggiornare segnalibri o riferimenti permanenti.

Usi impropri o implementazioni errate: Usare 302 per spostamenti permanenti (usa 301 per quelli), creare loop di reindirizzamento dove A invia a B e B invia di nuovo ad A, o usare 302 quando hai specificamente bisogno di preservare il metodo HTTP (usa 307).

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 303?

HTTP: 303 See Other

Quando e perché i server lo restituiscono: Dopo aver elaborato la tua richiesta (di solito POST), il server vuole che tu guardi una pagina diversa usando GET. È come inviare un modulo ed essere reindirizzato a una pagina di “grazie”.

Casi d’uso pratici: Dopo aver inviato un modulo, reindirizzare a una pagina di conferma; dopo aver effettuato un pagamento, reindirizzare a una ricevuta; ogni volta che vuoi prevenire invii duplicati quando gli utenti aggiornano la pagina.

Come dovrebbero rispondere i client a questo stato: Fare una nuova richiesta GET al nuovo URL. Questo previene il reinvio accidentale se gli utenti aggiornano la pagina, poiché l’aggiornamento ricaricherà solo la pagina finale, non rinvierà il modulo.

Usi impropri o implementazioni errate: Usare 303 quando vuoi preservare il metodo originale (usa 307), usarlo per reindirizzamenti permanenti (usa 301), o dimenticare che il reindirizzamento userà sempre GET indipendentemente dal metodo originale.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 304?

HTTP: 304 Not Modified

Quando e perché i server lo restituiscono: La risorsa non è cambiata dall’ultima volta che l’hai richiesta, quindi usa la tua copia in cache. È come verificare se un documento è stato aggiornato ed essere detto “no, è ancora lo stesso.”

Casi d’uso pratici: Caching del browser dove controlla se immagini/CSS/file JavaScript sono cambiati, risposte API che raramente cambiano, o qualsiasi situazione in cui vuoi risparmiare banda non inviando nuovamente dati non modificati.

Come dovrebbero rispondere i client a questo stato: Usare la versione in cache che hai già. Nessun nuovo dato viene con questa risposta - è solo una conferma che la tua copia in cache è ancora buona.

Usi impropri o implementazioni errate: Inviare dati con un 304 (deve essere vuoto), dire “non modificato” quando è stato effettivamente modificato, o non gestire correttamente gli header speciali che fanno funzionare questo.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 305?

HTTP: 305 Use Proxy

Quando e perché i server lo restituiscono: Questo codice di stato è deprecato e non dovrebbe mai essere usato. Aveva problemi di sicurezza ed è stato abbandonato dalla comunità web.

Casi d’uso pratici: Nessuno - questo codice di stato è ritirato e non dovrebbe essere usato in nessuna applicazione moderna.

Come dovrebbero rispondere i client a questo stato: I client moderni dovrebbero ignorare questo codice di stato per motivi di sicurezza. È un artefatto storico.

Usi impropri o implementazioni errate: Usare questo codice di stato è un errore. È deprecato per buone ragioni di sicurezza e non dovrebbe mai apparire in applicazioni moderne.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 307?

HTTP: 307 Temporary Redirect

Quando e perché i server lo restituiscono: Reindirizza temporaneamente a un altro URL, ma a differenza di 302, il client deve usare lo stesso metodo. Se la richiesta originale era POST, anche il reindirizzamento deve essere POST.

Casi d’uso pratici: Endpoint API in manutenzione che devono preservare il metodo, bilanciamento del carico che mantiene l’integrità della richiesta, o qualsiasi reindirizzamento temporaneo dove cambiare da POST a GET romperebbe le cose.

Come dovrebbero rispondere i client a questo stato: Reindirizzare al nuovo URL usando esattamente lo stesso metodo e corpo della richiesta originale. Questo è più rigoroso dei reindirizzamenti 302.

Usi impropri o implementazioni errate: Usare 307 per spostamenti permanenti (usa 308), usarlo quando la preservazione del metodo non importa (302 è più semplice), o non realizzare che i client devono rinviare il corpo della richiesta.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 308?

HTTP: 308 Permanent Redirect

Quando e perché i server lo restituiscono: Come 301, ma garantisce che il metodo non cambierà. Se hai fatto POST al vecchio URL, devi fare POST anche al nuovo URL.

Casi d’uso pratici: Spostamento permanente di endpoint API che accettano POST/PUT/DELETE, ristrutturazione di servizi RESTful mantenendo l’integrità del metodo, o qualsiasi spostamento permanente dove il metodo HTTP deve essere preservato.

Come dovrebbero rispondere i client a questo stato: Aggiornare permanentemente i riferimenti per usare il nuovo URL, e usare sempre lo stesso metodo HTTP della richiesta originale quando si segue il reindirizzamento.

Usi impropri o implementazioni errate: Usare 308 per spostamenti temporanei (usa 307), usarlo quando la preservazione del metodo non importa (301 è più ampiamente supportato), o dimenticare che questo è un codice di stato più recente che i client più vecchi potrebbero non capire.

Documentazione Mozilla.org per riferimento aggiuntivo


Errori del Client 4xx

Questi codici indicano che il client sembra aver fatto un errore.

Cos’è un codice di stato 400?

HTTP: 400 Bad Request

Quando e perché i server lo restituiscono: La tua richiesta è malformata o non valida in qualche modo. È come compilare un modulo con la tua email nel campo del numero di telefono - il server non può elaborarlo perché non ha senso.

Casi d’uso pratici: JSON non valido nel corpo della richiesta, parametri richiesti mancanti, tipi di dati sbagliati (inviare testo quando è previsto un numero), URL malformati, o qualsiasi errore di sintassi nella richiesta.

Come dovrebbero rispondere i client a questo stato: Non ripetere la stessa richiesta - fallirà di nuovo. Correggi prima il problema. Controlla il corpo della risposta per dettagli su cosa c’è di sbagliato e correggilo prima di riprovare.

Usi impropri o implementazioni errate: Usare 400 per problemi di autenticazione (usa 401), restituire 400 per errori del server (usa 5xx), dare messaggi di errore vaghi che non aiutano a risolvere il problema, o usare 400 come catch-all per qualsiasi errore.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 401?

HTTP: 401 Unauthorized

Quando e perché i server lo restituiscono: Devi fare login o fornire credenziali per accedere a questa risorsa. È come cercare di entrare in un’area riservata ai membri senza mostrare la tua tessera di membro.

Casi d’uso pratici: Accesso a endpoint API protetti senza un token, sessioni di login scadute, chiavi API mancanti, o qualsiasi richiesta a una risorsa che richiede di provare chi sei.

Come dovrebbero rispondere i client a questo stato: Chiedere all’utente di fare login, reindirizzare a una pagina di login, o ottenere credenziali valide prima di riprovare. Per le API, ottenere un token di autenticazione fresco.

Usi impropri o implementazioni errate: Usare 401 quando le credenziali sono valide ma insufficienti (usa 403), dimenticare di includere informazioni su come autenticarsi, o confondere autenticazione (chi sei) con autorizzazione (cosa ti è permesso fare).

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 403?

HTTP: 403 Forbidden

Quando e perché i server lo restituiscono: Il server capisce chi sei ma non ti lascerà accedere a questa risorsa. È come mostrare il tuo ID per entrare in un’area VIP ma essere detto che non sei sulla lista.

Casi d’uso pratici: Cercare di accedere a funzionalità admin come utente normale, tentare di visualizzare dati privati di un altro utente, restrizioni geografiche (contenuto non disponibile nel tuo paese), o blocco dell’indirizzo IP.

Come dovrebbero rispondere i client a questo stato: Non preoccuparti di riprovare con le stesse credenziali - non funzioneranno. Mostra un messaggio “accesso negato” e possibilmente spiega come ottenere l’accesso appropriato se applicabile.

Usi impropri o implementazioni errate: Usare 403 quando l’utente non è loggato (usa 401), usare 403 per risorse che non esistono per nascondere la loro esistenza (discutibile - potrebbe usare 404), o non essere chiari sul perché l’accesso è vietato.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 404?

HTTP: 404 Not Found

Quando e perché i server lo restituiscono: Il server non riesce a trovare nulla all’URL che hai richiesto. È come andare a un indirizzo dove c’è solo un lotto vuoto - o hai sbagliato l’indirizzo, o quello che c’era prima non c’è più.

Casi d’uso pratici: Digitare un URL in modo errato (come gooogle.com invece di google.com), cliccare vecchi segnalibri a pagine che sono state eliminate, seguire link rotti da altri siti, fare errori di battitura in endpoint API, o cercare di accedere a file che sono stati spostati o rinominati.

Come dovrebbero rispondere i client a questo stato: Mostrare una pagina di errore che aiuta gli utenti a capire cosa fare dopo. Buone pagine 404 includono una casella di ricerca, link a pagine popolari, un modo per segnalare il link rotto, o anche un messaggio divertente per rendere l’errore meno frustrante.

Usi impropri o implementazioni errate: Usare 404 quando l’accesso è negato (usa 403 per “non puoi vedere questo”), restituire 404 per cose che sono state intenzionalmente rimosse per sempre (considera 410 “Gone”), mostrare pagine di errore generiche poco utili, o usare 404 per nascondere che qualcosa esiste da utenti non autorizzati (anche se questo è discutibile per sicurezza).

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 405?

HTTP: 405 Method Not Allowed

Quando e perché i server lo restituiscono: La risorsa esiste ma non supporta il metodo HTTP che hai usato. È come cercare di spingere una porta che si apre solo tirandola - la porta esiste, devi solo usarla correttamente.

Casi d’uso pratici: Cercare di DELETE una risorsa che è di sola lettura, inviare POST a un endpoint che accetta solo GET, tentare PUT su risorse che non possono essere aggiornate, o usare metodi personalizzati che il server non supporta.

Come dovrebbero rispondere i client a questo stato: Controllare l’header Allow per vedere quali metodi sono supportati, poi riprovare con un metodo appropriato. Non continuare a provare lo stesso metodo - non è supportato.

Usi impropri o implementazioni errate: Non includere l’header Allow richiesto che elenca i metodi supportati, usare 405 quando la risorsa non esiste (usa 404), o restituire 405 per metodi che il server dovrebbe supportare ma non ha ancora implementato (considera 501).

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 406?

HTTP: 406 Not Acceptable

Quando e perché i server lo restituiscono: Il server non può fornire la risorsa in un formato che accetterai. È come chiedere un menu in francese a un ristorante che ha solo versioni in inglese e spagnolo.

Casi d’uso pratici: Richiedere JSON da un endpoint che fornisce solo XML, chiedere un formato di immagine che il server non supporta, fallimenti nella negoziazione della lingua, o qualsiasi mancata corrispondenza nella negoziazione del contenuto.

Come dovrebbero rispondere i client a questo stato: Modificare gli header Accept per richiedere un formato che il server può fornire, o gestire i formati disponibili. La risposta potrebbe elencare quali formati sono disponibili.

Usi impropri o implementazioni errate: Essere troppo rigorosi sui formati quando potresti fornire un default ragionevole, usare 406 per errori non di negoziazione del contenuto, o non indicare chiaramente quali formati sono disponibili.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 407?

HTTP: 407 Proxy Authentication Required

Quando e perché i server lo restituiscono: Un server proxy tra te e la destinazione richiede autenticazione. È come dover mostrare l’ID alla guardia di sicurezza prima di poter arrivare all’edificio che vuoi entrare.

Casi d’uso pratici: Server proxy aziendali che richiedono login dei dipendenti, gateway di rete che necessitano di autenticazione, servizi proxy a pagamento che richiedono credenziali, o qualsiasi configurazione proxy autenticato.

Come dovrebbero rispondere i client a questo stato: Autenticarsi con il server proxy (non il server di destinazione) usando il metodo specificato nell’header Proxy-Authenticate, poi ripetere la richiesta originale.

Usi impropri o implementazioni errate: Confondere questo con l’autenticazione 401 normale, non includere l’header Proxy-Authenticate, o usare 407 quando è il server di destinazione (non il proxy) che richiede l’autenticazione.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 408?

HTTP: 408 Request Timeout

Quando e perché i server lo restituiscono: Il server ha aspettato che tu inviassi la richiesta completa, ma hai impiegato troppo tempo. È come iniziare a ordinare in un ristorante ma fare una pausa così lunga che il cameriere se ne va.

Casi d’uso pratici: Connessioni di rete lente che causano ritardi, caricamenti di file di grandi dimensioni su connessioni scadenti, applicazioni client che si bloccano durante la trasmissione della richiesta, o interruzioni di rete mentre si inviano dati.

Come dovrebbero rispondere i client a questo stato: Puoi ripetere la richiesta, preferibilmente con una connessione migliore o un payload più piccolo. Considera di dividere richieste grandi in pezzi più piccoli o migliorare le condizioni di rete.

Usi impropri o implementazioni errate: Usare 408 quando il server è lento (quello è 504), impostare timeout irragionevolmente brevi, o usare 408 per timeout a livello di applicazione piuttosto che a livello di rete.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 409?

HTTP: 409 Conflict

Quando e perché i server lo restituiscono: La tua richiesta è in conflitto con lo stato corrente della risorsa. È come cercare di creare un nome utente che è già preso - l’operazione ha senso, ma non può essere fatta in questo momento.

Casi d’uso pratici: Cercare di creare un record duplicato, modificare un documento che qualcun altro sta attualmente modificando, conflitti di versione in sistemi collaborativi, o violare regole di business (come prenotare doppiamente una risorsa).

Come dovrebbero rispondere i client a questo stato: Risolvere il conflitto scegliendo un valore diverso, unendo le modifiche, o aspettando che il conflitto si risolva. La risposta dovrebbe spiegare qual è il conflitto e come risolverlo.

Usi impropri o implementazioni errate: Usare 409 per errori di validazione (considera 422), non spiegare come risolvere il conflitto, usare 409 per problemi di permessi (usa 403), o segnalare conflitti che non sono effettivamente risolvibili dal client.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 410?

HTTP: 410 Gone

Quando e perché i server lo restituiscono: La risorsa esisteva qui ma è stata deliberatamente rimossa e non tornerà. È come visitare un edificio demolito - non è solo temporaneamente chiuso, è permanentemente andato.

Casi d’uso pratici: Articoli o post eliminati per violazioni di policy, prodotti che sono discontinuati per sempre, vecchie versioni API che sono state ritirate, o qualsiasi contenuto intenzionalmente e permanentemente rimosso.

Come dovrebbero rispondere i client a questo stato: Rimuovere segnalibri, aggiornare link, e informare gli utenti che il contenuto è permanentemente andato. I motori di ricerca dovrebbero rimuovere questi URL dal loro indice. Non continuare a controllare - non sta tornando.

Usi impropri o implementazioni errate: Usare 410 per rimozioni temporanee (usa 503), usare 410 quando potresti ripristinare il contenuto, usare 410 per cose che non sono mai esistite (usa 404), o non essere certi che la rimozione sia permanente.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 418?

HTTP: 418 I’m a teapot

Quando e perché i server lo restituiscono: Questo è un codice di stato scherzoso da un RFC di Pesce d’Aprile sul controllo delle caffettiere. Significa “Sono una teiera, e mi hai chiesto di preparare caffè, cosa che non posso fare.”

Casi d’uso pratici: Easter egg nelle applicazioni, dimostrare l’estensibilità di HTTP nei corsi di programmazione, aggiungere umorismo agli ambienti di sviluppo/test, o come risposta giocosa in contesti appropriati.

Come dovrebbero rispondere i client a questo stato: Riconoscerlo come una risposta umoristica e gestirlo appropriatamente - magari visualizzare un messaggio di errore divertente o immagini relative al tè. Non aspettarselo in ambienti di produzione seri.

Usi impropri o implementazioni errate: Usare 418 per errori effettivi in sistemi di produzione, abusarne fino al punto di essere fastidioso, o restituirlo a utenti che non capiranno lo scherzo.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 422?

HTTP: 422 Unprocessable Entity

Quando e perché i server lo restituiscono: Il formato della tua richiesta è corretto, ma il contenuto non ha senso. È come compilare un modulo correttamente ma inserire dati impossibili - come avere 300 anni o essere nati nel futuro.

Casi d’uso pratici: Fallimenti nella validazione dei moduli (email senza simbolo @), violazioni delle regole di business (data di fine prima della data di inizio), errori semantici nelle richieste API, o qualsiasi errore logico in dati formattati correttamente.

Come dovrebbero rispondere i client a questo stato: Leggere i dettagli dell’errore per capire quale validazione è fallita, correggere i dati per soddisfare i requisiti, e reinviare. La struttura era a posto; il contenuto necessita di aggiustamenti.

Usi impropri o implementazioni errate: Usare 422 per errori di sintassi (usa 400), non fornire dettagli specifici sugli errori di validazione, usare 422 per problemi di autenticazione/autorizzazione, o essere incoerenti su cosa scatena 422 vs 400.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 429?

HTTP: 429 Too Many Requests

Quando e perché i server lo restituiscono: Stai inviando troppe richieste troppo rapidamente. È come chiamare qualcuno ripetutamente - alla fine smetteranno di rispondere e ti diranno di rallentare.

Casi d’uso pratici: Limitazione del tasso API (es. 100 richieste all’ora), prevenzione di abusi o attacchi DDoS, protezione dei server dall’essere sovraccaricati, o applicazione di politiche di uso equo.

Come dovrebbero rispondere i client a questo stato: Smettere di fare richieste e aspettare. Controllare l’header Retry-After per vedere quando puoi riprovare. Implementare backoff esponenziale - aspettare più a lungo tra ogni tentativo di ripetizione.

Usi impropri o implementazioni errate: Non includere l’header Retry-After per guidare i client, impostare limiti troppo bassi per l’uso normale, usare 429 per altri tipi di sovraccarico (considera 503), o non documentare chiaramente i limiti di tasso.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 451?

HTTP: 451 Unavailable For Legal Reasons

Quando e perché i server lo restituiscono: Il contenuto è bloccato per requisiti legali. Chiamato così dal “Fahrenheit 451” di Ray Bradbury sulla censura, questo stato indica blocco governativo o legale.

Casi d’uso pratici: Contenuto bloccato da ordine del tribunale, avvisi di rimozione DMCA, restrizioni geografiche dovute a leggi locali, requisiti di censura governativa, o qualsiasi blocco di contenuto legalmente obbligato.

Come dovrebbero rispondere i client a questo stato: Informare gli utenti che il contenuto è legalmente limitato. La risposta potrebbe includere dettagli su chi ha richiesto il blocco (se è legalmente consentito condividerlo).

Usi impropri o implementazioni errate: Usare 451 per blocchi non legali (usa il codice 4xx appropriato), non essere trasparenti sui blocchi legali quando possibile, o usare 451 per politiche di contenuto volontarie piuttosto che requisiti legali.

Documentazione Mozilla.org per riferimento aggiuntivo


Errori del Server 5xx

Questi codici indicano che il server non è riuscito a soddisfare una richiesta valida.

Cos’è un codice di stato 500?

HTTP: 500 Internal Server Error

Quando e perché i server lo restituiscono: Qualcosa è andato storto dal lato del server, e non sa come gestirlo. È come un registratore di cassa che si blocca in un negozio - il problema non è con il tuo metodo di pagamento, il loro sistema si è semplicemente rotto.

Casi d’uso pratici: Quando la connessione al database fallisce, quando c’è un bug nel codice del server, quando il server esaurisce la memoria, o qualsiasi crash inaspettato che i programmatori non hanno anticipato.

Come dovrebbero rispondere i client a questo stato: Dire agli utenti che qualcosa è andato storto e suggerire di riprovare più tardi. Potresti riprovare automaticamente dopo un ritardo, poiché questi errori sono spesso temporanei.

Usi impropri o implementazioni errate: Usare 500 per errori dell’utente (usa codici 4xx per quelli), mostrare messaggi di errore dettagliati agli utenti (rischio di sicurezza!), non loggare abbastanza dettagli per risolvere il problema, o usare 500 come catch-all pigro per qualsiasi errore.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 501?

HTTP: 501 Not Implemented

Quando e perché i server lo restituiscono: Il server non supporta la funzionalità che stai chiedendo. È come chiedere a una calcolatrice di base di fare grafici di funzioni - capisce cosa vuoi ma non ha quella funzionalità.

Casi d’uso pratici: Usare metodi HTTP che il server non riconosce, richiedere funzionalità pianificate ma non ancora costruite, server legacy che non supportano funzionalità moderne, o metodi personalizzati che non sono implementati.

Come dovrebbero rispondere i client a questo stato: Non ripetere questa richiesta - il server non può gestirla. Usa un approccio diverso o verifica se c’è un modo alternativo per ottenere quello di cui hai bisogno.

Usi impropri o implementazioni errate: Usare 501 per funzionalità temporaneamente disabilitate (usa 503), usare 501 per metodi che riconosci ma non permetti (usa 405), o usare 501 come scusa per funzionalità mancanti che dovrebbero essere implementate.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 502?

HTTP: 502 Bad Gateway

Quando e perché i server lo restituiscono: Un server che agisce come gateway o proxy ha ricevuto una risposta non valida da un server upstream. È come chiedere a qualcuno di trasmettere un messaggio, ma tornano dicendo “la persona che ho chiesto mi ha dato sciocchezze.”

Casi d’uso pratici: Load balancer che non riesce a raggiungere i server backend, gateway API che ricevono errori dai microservizi, reverse proxy che ottengono risposte malformate, o CDN che non riesce a recuperare dal server di origine.

Come dovrebbero rispondere i client a questo stato: Questo è di solito temporaneo, quindi riprova dopo un breve ritardo. Il problema è tra server, non con la tua richiesta, quindi riprovare potrebbe funzionare una volta che risolvono i loro problemi di comunicazione.

Usi impropri o implementazioni errate: Usare 502 per gli errori propri del server di origine (usa 500), non distinguere tra scenari “non posso raggiungere” e “risposta non valida”, o usare 502 quando il gateway stesso ha problemi.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 503?

HTTP: 503 Service Unavailable

Quando e perché i server lo restituiscono: Il server è temporaneamente incapace di gestire richieste. È come un negozio che mette su un cartello “chiuso per manutenzione” - torneranno, ma non adesso.

Casi d’uso pratici: Finestre di manutenzione programmate, situazioni di sovraccarico del server, interruzioni temporanee per aggiornamenti, limitazione del tasso a livello server, o qualsiasi incapacità temporanea di servire richieste.

Come dovrebbero rispondere i client a questo stato: Aspettare e riprovare più tardi. Controllare l’header Retry-After per indicazioni su quando tornare. Implementare backoff esponenziale per i tentativi per evitare di sovraccaricare il server quando torna.

Usi impropri o implementazioni errate: Usare 503 per problemi permanenti (usa l’errore appropriato), non includere Retry-After quando sai quanto tempo ci vorrà, usare 503 per problemi specifici del client piuttosto che problemi a livello server.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 504?

HTTP: 504 Gateway Timeout

Quando e perché i server lo restituiscono: Un server che agisce come gateway o proxy non ha ricevuto una risposta tempestiva da un server upstream. È come chiedere a qualcuno di trasmettere un messaggio, ma tornano dicendo “Ho aspettato e aspettato, ma non hanno mai risposto.”

Casi d’uso pratici: Query di database che richiedono troppo tempo, servizi backend sovraccaricati, problemi di rete tra server, microservizi che non rispondono abbastanza velocemente, o qualsiasi timeout nella comunicazione server-to-server.

Come dovrebbero rispondere i client a questo stato: Puoi riprovare, ma sii consapevole che l’operazione potrebbe essere costosa o lenta. Considera se la richiesta è abbastanza critica da ripetere, e implementa limiti di ripetizione ragionevoli.

Usi impropri o implementazioni errate: Usare 504 quando i client sono lenti (usa 408), impostare timeout troppo brevi per operazioni ragionevoli, non distinguere tra diversi scenari di timeout, o usare 504 per i timeout propri del server di origine.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 505?

HTTP: 505 HTTP Version Not Supported

Quando e perché i server lo restituiscono: Il server non supporta la versione HTTP usata nella richiesta. È come cercare di riprodurre un disco Blu-ray in un lettore DVD - il lettore capisce cosa vuoi ma non può gestire quel formato.

Casi d’uso pratici: Vecchi server che supportano solo HTTP/1.0 ricevendo richieste HTTP/2, server non ancora aggiornati per supportare versioni HTTP più recenti, o versioni HTTP personalizzate/sperimentali che il server non riconosce.

Come dovrebbero rispondere i client a questo stato: Ripetere la richiesta usando una versione HTTP diversa, tipicamente tornando a HTTP/1.1 che è universalmente supportato. Controllare quali versioni supporta il server.

Usi impropri o implementazioni errate: Usare 505 per funzionalità non supportate all’interno di una versione (usa 501), non tentare di gestire la negoziazione della versione con eleganza, o rifiutare versioni HTTP standard che dovrebbero essere supportate.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 507?

HTTP: 507 Insufficient Storage

Quando e perché i server lo restituiscono: Il server non ha abbastanza spazio di archiviazione per completare la richiesta. È come cercare di salvare un file quando il disco rigido è pieno.

Casi d’uso pratici: Fallimenti nel caricamento di file dovuti a disco pieno, operazioni di database che raggiungono quote di archiviazione, operazioni WebDAV che superano lo spazio allocato, o qualsiasi operazione che richiede più archiviazione di quella disponibile.

Come dovrebbero rispondere i client a questo stato: Informare gli utenti sui limiti di archiviazione. Potrebbe essere necessario eliminare vecchi contenuti, richiedere più archiviazione, o ridurre la dimensione di quello che stai cercando di memorizzare.

Usi impropri o implementazioni errate: Usare 507 per problemi di archiviazione temporanei che si risolveranno (considera 503), non monitorare correttamente l’archiviazione, usare 507 per problemi di quota non correlati all’archiviazione fisica, o non fornire informazioni sui limiti di archiviazione.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 508?

HTTP: 508 Loop Detected

Quando e perché i server lo restituiscono: Il server ha rilevato un loop infinito durante l’elaborazione della richiesta. È come seguire istruzioni che dicono “vedi passaggio 1” alla fine - andresti in cerchio per sempre.

Casi d’uso pratici: Operazioni WebDAV con riferimenti circolari, catene di reindirizzamento che tornano su se stesse, link simbolici che creano cicli, o qualsiasi operazione server che rileva di ripetersi all’infinito.

Come dovrebbero rispondere i client a questo stato: Non ripetere la stessa richiesta - colpirà lo stesso loop. Controlla i riferimenti circolari nella tua struttura dati e correggili prima di riprovare.

Usi impropri o implementazioni errate: Usare 508 per errori non di loop, non implementare un corretto rilevamento dei loop, usare 508 per loop di reindirizzamento lato client (quelli si mostrano in modo diverso), o rilevare falsi positivi come loop.

Documentazione Mozilla.org per riferimento aggiuntivo


Cos’è un codice di stato 511?

HTTP: 511 Network Authentication Required

Quando e perché i server lo restituiscono: Devi autenticarti con la rete stessa prima di poter accedere a Internet. È come dover accedere al WiFi dell’hotel prima di poter navigare su qualsiasi sito web.

Casi d’uso pratici: Pagine di login WiFi di hotel o aeroporti, portali di accesso alla rete aziendale, WiFi pubblico che richiede l’accettazione dei termini di servizio, o qualsiasi situazione di portale captive.

Come dovrebbero rispondere i client a questo stato: Reindirizzare gli utenti alla pagina di login della rete (di solito fornita nella risposta). Una volta che si autenticano con la rete, possono riprovare la loro richiesta originale.

Usi impropri o implementazioni errate: Usare 511 per requisiti di login del sito web (usa 401), usare 511 per autenticazione proxy (usa 407), o implementare portali captive in modi che rompono connessioni sicure.

Documentazione Mozilla.org per riferimento aggiuntivo