Vai al contenuto principale
LibraTool logoLibraTool

Riferimento Codici di Stato HTTP gratis

Riferimento ricercabile per tutti i codici di stato HTTP — cosa significa ciascuno, quando viene usato e le cause comuni. Da 100 a 511.

Funziona offline una volta caricato

61 codici di stato

100

Continua

Il server ha ricevuto le intestazioni della richiesta e il client deve procedere con il corpo.

Utilizzato per le richieste con Expect: 100-continue. Il server riconosce che è disposto a ricevere il corpo prima che il client lo invii. Raramente visto nelle moderne app web.

RFC 9110 ↗
101

Cambio dei protocolli

Il server sta cambiando protocolli come richiesto dal client.

Comunemente utilizzato per gli aggiornamenti WebSocket — il client richiede Upgrade: websocket e il server risponde con 101 per passare.

RFC 9110 ↗
102

Elaborazione

Il server ha ricevuto la richiesta e la sta elaborando, ma non è ancora disponibile alcuna risposta.

Una risposta intermedia WebDAV inviata per evitare timeout del client durante operazioni lunghe. Deprecato — i server moderni non dovrebbero inviarlo.

RFC 2518 ↗
103

Suggerimenti anticipati

Intestazioni preliminari inviate prima della risposta finale.

Consente ai server di inviare intestazioni Link (preload/preconnect) mentre la risposta finale è ancora in preparazione, in modo che i browser possano iniziare a recuperare risorse critiche prima.

RFC 8297 ↗
200

OK

La richiesta è riuscita.

La risposta di successo standard. Il significato dipende dal metodo HTTP: GET → risorsa restituita, POST/PUT → azione completata.

RFC 9110 ↗
201

Creato

Una nuova risorsa è stata creata con successo.

Comune dopo un POST. La risposta dovrebbe includere un'intestazione Location che punta all'URL della nuova risorsa.

RFC 9110 ↗
202

Accettato

La richiesta è stata accettata per l'elaborazione, ma l'elaborazione non è completa.

Per operazioni asincrone — il server sta mettendo in coda il lavoro. Il client dovrebbe eseguire il polling di un endpoint di stato o controllare più tardi.

RFC 9110 ↗
203

Informazioni non autorevoli

La risposta è stata modificata da un proxy trasformante.

La richiesta è riuscita, ma un intermediario (come un proxy di caching o trasformazione) ha alterato il payload dal server di origine — ad esempio, ricomprimendo le immagini. Raro nella pratica.

RFC 9110 ↗
204

Nessun contenuto

La richiesta è riuscita ma non c'è un corpo di risposta.

Spesso utilizzato per operazioni DELETE o aggiornamenti PUT che non hanno bisogno di restituire un corpo. Il client non dovrebbe navigare lontano dalla pagina corrente.

RFC 9110 ↗
205

Reimposta contenuto

La richiesta è riuscita; il client dovrebbe reimpostare la visualizzazione del documento.

Come 204, non viene restituito alcun corpo — ma al client viene inoltre detto di reimpostare il modulo o la visualizzazione che ha prodotto la richiesta (es. cancellare i campi del modulo per la prossima voce).

RFC 9110 ↗
206

Contenuto parziale

Il server ha consegnato solo una parte della risorsa.

Risposta a una richiesta Range. Utilizzato dai lettori video e dai gestori di download per riprendere i download interrotti o trasmettere in streaming file di grandi dimensioni.

RFC 9110 ↗
207

Multi-stato

Il corpo della risposta contiene più codici di stato per più operazioni.

WebDAV: un corpo XML riporta l'esito di più operazioni secondarie indipendentemente — ad es. uno spostamento in batch in cui alcuni elementi hanno avuto successo e altri no.

RFC 4918 ↗
208

Già segnalato

I membri di una raccolta sono stati già elencati in precedenza nella risposta.

WebDAV: utilizzato all'interno di risposte 207 Multi-Status per evitare di elencare ripetutamente i membri della stessa raccolta quando i binding creano loop.

RFC 5842 ↗
226

IM utilizzato

La risposta è il risultato di manipolazioni di istanze applicate alla risorsa.

Codifica delta: il server restituisce un diff rispetto a una versione precedente invece della risorsa completa, risparmiando larghezza di banda. Molto raramente implementato.

RFC 3229 ↗
300

Scelte multiple

Sono disponibili più rappresentazioni della risorsa.

Il server offre più opzioni (es. formati o lingue diversi) e il client dovrebbe sceglierne una. Raramente usato, perché la negoziazione automatica del contenuto di solito gestisce questo.

RFC 9110 ↗
301

Spostato permanentemente

La risorsa si è spostata permanentemente a un nuovo URL.

Utilizzare per i cambiamenti URL permanenti — i motori di ricerca aggiorneranno il loro indice. L'autorità SEO viene trasferita al nuovo URL.

RFC 9110 ↗
302

Trovato (Reindirizzamento temporaneo)

La risorsa è temporaneamente in un URL diverso.

Indica che il reindirizzamento non è permanente. La memorizzazione nella cache è meno aggressiva rispetto a 301. Utilizzare per cose come 'accesso richiesto, reindirizzamento a /login'.

RFC 9110 ↗
303

Vedi altro

Reindirizza a un URL diverso utilizzando GET.

Utilizzato dopo i submit di POST — la risposta dice 'il tuo POST ha funzionato, vedi questo URL GET per il risultato'. I browser ottengono sempre il nuovo URL.

RFC 9110 ↗
304

Non modificato

La versione memorizzata nella cache è ancora valida; usala.

Risposta a una richiesta condizionale (con intestazioni If-None-Match o If-Modified-Since). Risparmia larghezza di banda — non viene restituito alcun corpo.

RFC 9110 ↗
307

Reindirizzamento temporaneo

Come 302 ma conserva il metodo HTTP originale.

Se l'originale era POST, il reindirizzamento utilizza anche POST. Alternativa moderna a 302 quando la conservazione del metodo è importante.

RFC 9110 ↗
308

Reindirizzamento permanente

Come 301 ma conserva il metodo HTTP originale.

Sostituzione moderna di 301 quando vuoi che le richieste POST rimangano POST dopo il reindirizzamento.

RFC 9110 ↗
400

Richiesta non valida

Il server non ha potuto comprendere la richiesta a causa di una sintassi non valida.

Cause comuni: JSON non valido nel corpo, parametri di query non validi o campi obbligatori mancanti. Controlla il corpo della richiesta e le intestazioni.

RFC 9110 ↗
401

Non autorizzato

L'autenticazione è richiesta e non è stata fornita.

Il client deve includere credenziali di autenticazione (intestazione Authorization, cookie, token). 'Non autorizzato' è un termine improprio — significa davvero 'non autenticato'.

RFC 9110 ↗
402

Pagamento richiesto

Riservato per uso futuro — a volte utilizzato per livelli API a pagamento.

Originariamente previsto per i pagamenti digitali. Utilizzo moderno: le API a volte restituiscono 402 quando un utente ha superato la sua quota a pagamento.

RFC 9110 ↗
403

Vietato

Il client è autenticato ma non ha il permesso.

Diverso da 401 — l'utente È connesso, ma il suo account non ha il permesso per questa risorsa. Controlla la logica dei ruoli/permessi.

RFC 9110 ↗
404

Non trovato

La risorsa richiesta non esiste.

O l'URL è sbagliato, la risorsa è stata eliminata o non è mai esistita. I server a volte restituiscono 404 per nascondere che un 403 sarebbe più accurato.

RFC 9110 ↗
405

Metodo non consentito

Il metodo HTTP utilizzato non è consentito per questa risorsa.

Ad esempio, una richiesta GET a un endpoint che accetta solo POST. La risposta dovrebbe includere un'intestazione Allow che elenca i metodi validi.

RFC 9110 ↗
406

Non accettabile

Nessuna rappresentazione corrisponde alle intestazioni Accept del client.

Il client ha richiesto un tipo di contenuto, una lingua o una codifica (tramite Accept, Accept-Language, Accept-Encoding) che il server non può soddisfare. Molti server saltano la negoziazione ristretta e restituiscono un valore predefinito.

RFC 9110 ↗
407

Autenticazione proxy richiesta

Il client deve autenticarsi presso il proxy innanzitutto.

Come 401, ma emesso da un proxy: il client deve inviare credenziali Proxy-Authorization. Visto su reti aziendali con proxy autenticanti.

RFC 9110 ↗
408

Timeout della richiesta

Il server ha raggiunto il timeout in attesa della richiesta.

Il client ha impiegato troppo tempo per inviare il corpo della richiesta o ha mantenuto la connessione inattiva. Prova a inviare di nuovo la richiesta.

RFC 9110 ↗
409

Conflitto

La richiesta entra in conflitto con lo stato attuale della risorsa.

Solitamente restituito per conflitti di modifica concorrente o creazione duplicata di risorse (ad esempio, creazione di un utente con un'email già esistente).

RFC 9110 ↗
410

Non più disponibile

La risorsa è stata eliminata e non tornerà.

Più significativo di 404 — il server sa esplicitamente che la risorsa ESISTEVA ma è stata rimossa permanentemente. I motori di ricerca la rimuoveranno dall'indice.

RFC 9110 ↗
411

Lunghezza richiesta

Il server richiede un'intestazione Content-Length.

La richiesta è stata rifiutata perché mancava dell'intestazione Content-Length e il server rifiuta i corpi di dimensioni sconosciute. Aggiungi l'intestazione e riprova.

RFC 9110 ↗
412

Precondizione non soddisfatta

Una condizione nelle intestazioni della richiesta non è stata soddisfatta.

Restituito quando le intestazioni condizionali come If-Match o If-Unmodified-Since non vengono soddisfatte — solitamente blocco ottimista: qualcun altro ha modificato la risorsa dalla tua versione. Ricarica e riprova.

RFC 9110 ↗
413

Payload troppo grande

Il corpo della richiesta supera il limite di dimensioni del server.

Comune durante il caricamento di file di grandi dimensioni. La configurazione del server (nginx, apache) imposta una dimensione massima del corpo. Controlla la configurazione del server.

RFC 9110 ↗
414

URI troppo lungo

L'URL della richiesta supera il limite di lunghezza del server.

Solitamente causato da stringhe di query molto lunghe (ad esempio, codifica dei dati in una GET). Passa a un corpo POST oppure aumenta il limite del server se lo controlli.

RFC 9110 ↗
415

Tipo di media non supportato

Il server non riesce a gestire il Content-Type inviato.

Ad esempio, invio di application/xml a un server che accetta solo application/json. Imposta correttamente l'intestazione Content-Type.

RFC 9110 ↗
416

Intervallo non soddisfacibile

L'intervallo di byte richiesto è al di fuori della dimensione della risorsa.

L'intestazione Range richiede una porzione che il file non contiene — ad esempio, ripresa di un download dopo la fine del file. La risposta dovrebbe includere Content-Range con la dimensione effettiva.

RFC 9110 ↗
417

Aspettativa non soddisfatta

Il server non riesce a soddisfare i requisiti dell'intestazione Expect.

Inviato quando il server non supporta Expect: 100-continue. Alcuni client inviano questa intestazione per impostazione predefinita su grandi POST; disabilitarla di solito risolve l'errore.

RFC 9110 ↗
418

Sono una teiera

Il server rifiuta di fare il caffè perché è una teiera.

Uno scherzo di Pesce d'Aprile del 1998 (RFC 2324). Alcune API reali lo usano per scherzi o per contrassegnare endpoint deprecati. Non per l'uso in produzione.

RFC 2324 ↗
421

Richiesta mal indirizzata

La richiesta è stata inviata a un server che non riesce a produrre una risposta.

Comune con il riutilizzo della connessione HTTP/2: la richiesta ha raggiunto un server non configurato per il nome host di destinazione. Il client dovrebbe riprovare su una nuova connessione.

RFC 9110 ↗
422

Contenuto non elaborabile

La richiesta era sintatticamente valida ma semanticamente scorretta.

Ad esempio, JSON analizzato correttamente ma mancava un campo obbligatorio, oppure il valore di un campo era fuori intervallo. Comune nelle risposte di convalida dell'API REST.

RFC 9110 ↗
423

Bloccato

La risorsa è bloccata.

WebDAV: la risorsa di origine o di destinazione è bloccata da un altro client, quindi l'operazione non può procedere. Attendi che il blocco venga rilasciato oppure rompi il blocco con il token appropriato.

RFC 4918 ↗
424

Dipendenza non soddisfatta

La richiesta non è riuscita perché una precedente richiesta dipendente non è riuscita.

WebDAV: in una catena di operazioni dipendenti, un'azione precedente non è riuscita, quindi questa non è stata eseguita. Controlla il fallimento precedente per la causa principale.

RFC 4918 ↗
425

Troppo presto

Il server rifiuta di elaborare una richiesta che potrebbe essere replicata.

Correlato a TLS 1.3 0-RTT (dati anticipati): il server non rischia di elaborare una richiesta che potrebbe essere replicata. Il client dovrebbe riprovare dopo il completamento dell'handshake.

RFC 8470 ↗
426

Aggiornamento richiesto

Il client deve passare a un protocollo diverso.

Il server rifiuta di servire la richiesta sul protocollo attuale ma lo farà dopo un aggiornamento — la risposta include un'intestazione Upgrade che nomina il protocollo richiesto.

RFC 9110 ↗
428

Precondizione richiesta

Il server richiede che la richiesta sia condizionale.

Il server richiede intestazioni condizionali (come If-Match) per prevenire conflitti dovuti ad aggiornamenti persi. Preleva la risorsa, acquisisci il suo ETag e invia di nuovo con If-Match.

RFC 6585 ↗
429

Troppe richieste

Il client viene sottoposto a limitazione della velocità.

Rallenta. La risposta dovrebbe includere un'intestazione Retry-After che indichi quando riprovare. Comune con le API che hanno quote di richieste.

RFC 6585 ↗
431

Campi di intestazione della richiesta troppo grandi

Le intestazioni sono troppo grandi per essere elaborate dal server.

Una singola intestazione o la dimensione totale delle intestazioni supera il limite — il più delle volte causato da cookie di grandi dimensioni. Cancella i cookie o riduci ciò che la tua app archivia.

RFC 6585 ↗
451

Non disponibile per motivi legali

Accesso negato a causa di richieste legali.

La risorsa è bloccata per motivi legali — censura, ordini giudiziari o normative regionali. Il numero è un cenno al romanzo Fahrenheit 451.

RFC 7725 ↗
500

Errore interno del server

Il server ha rilevato una condizione imprevista.

Un catch-all generico per gli errori lato server. Controlla i log del server per la causa effettiva: eccezione non gestita, errore del database, ecc.

RFC 9110 ↗
501

Non implementato

Il server non supporta la funzionalità richiesta.

Ad esempio, il server non riconosce il metodo HTTP. Raro nella pratica — più spesso vedrai 405.

RFC 9110 ↗
502

Gateway errato

Il server, fungendo da gateway, ha ricevuto una risposta errata da un server upstream.

Comune nelle architetture di microservizi. Il tuo load balancer o reverse proxy ha ricevuto una risposta malformata dal servizio di backend.

RFC 9110 ↗
503

Servizio non disponibile

Il server è temporaneamente impossibilitato a gestire la richiesta.

O inattivo per manutenzione o sovraccarico. La risposta dovrebbe includere un'intestazione Retry-After. Spesso restituito durante i deploy.

RFC 9110 ↗
504

Timeout del gateway

Il server gateway ha raggiunto il timeout in attesa di una risposta upstream.

Il servizio di backend non ha risposto abbastanza velocemente. Controlla la salute del servizio upstream e le configurazioni dei timeout.

RFC 9110 ↗
505

Versione HTTP non supportata

Il server non supporta la versione HTTP utilizzata nella richiesta.

La versione principale di HTTP della richiesta non è supportata dal server. Praticamente mai vista con i client moderni.

RFC 9110 ↗
506

Anche la variante negozia

Il server ha un errore di configurazione della negoziazione del contenuto.

La negoziazione del contenuto trasparente è entrata in un ciclo: la variante scelta è essa stessa configurata per negoziare. Indica un errore di configurazione del server.

RFC 2295 ↗
507

Archiviazione insufficiente

Il server è rimasto senza spazio su disco.

Originariamente specifico di WebDAV ma a volte utilizzato da server generali. Significa che il server non può salvare la richiesta a causa di vincoli di archiviazione.

RFC 4918 ↗
508

Ciclo rilevato

Il server ha rilevato un ciclo infinito durante l'elaborazione della richiesta.

WebDAV: l'elaborazione di una richiesta Depth: infinity è entrata in un ciclo (ad esempio, binding circolari). L'operazione è stata terminata.

RFC 5842 ↗
510

Non esteso

Ulteriori estensioni alla richiesta sono richieste.

Dal framework obsoleto delle estensioni HTTP: il server ha bisogno di ulteriori informazioni prima di poter soddisfare la richiesta. Effettivamente inutilizzato sul web moderno.

RFC 2774 ↗
511

Autenticazione di rete richiesta

Il client deve autenticarsi per ottenere l'accesso alla rete.

Utilizzato da portali captive (WiFi di hotel/aeroporto) per indicare che l'utente deve accedere alla rete prima di accedere ai siti esterni.

RFC 6585 ↗

Usi comuni

  • Riferimento per il Design APIQuando progetti API REST, scegli il codice di stato giusto per ogni risposta.
  • Cerca i Codici di Errore VelocementeQuando la tua app restituisce un errore HTTP confuso, cerca cosa significa effettivamente.
  • Impara i Codici di Stato HTTPRiferimento completo per studenti e sviluppatori che imparano HTTP e REST.
  • Riferimento Rapido Durante gli IncidentiDurante gli incidenti di produzione, cerca rapidamente cosa significa ogni codice di stato.
  • Riferimento per la documentazione APIDurante la scrittura della documentazione API, collega alle descrizioni autorevoli dei codici di stato che restituisci.

Come funziona

Questo strumento è un riferimento lato client costruito intorno a una tabella di ricerca codificata a mano di 63 codici di stato HTTP che abbraccia tutte e cinque le classi (1xx–5xx), ognuna annotata con il suo numero RFC di riferimento. Non c'è chiamata al server, nessuna API esterna, e nessuna richiesta di rete — tutto il filtraggio e la visualizzazione avvengono nel browser usando i metodi array e stringa integrati di JavaScript.

  1. 1
    La tabella di ricerca viene caricata
    L'intero set di 63 codici di stato registrati IANA è incorporato direttamente in questo strumento come array JavaScript, ogni voce porta il codice numerico, il nome canonico in inglese, la classe di categoria, e l'RFC specifico che lo definisce (ad es. RFC 9110 per la maggior parte dei codici HTTP/1.1, RFC 6585 per 429 Too Many Requests, RFC 2324 per 418 I'm a Teapot).
  2. 2
    Il filtro funziona in memoria
    Mentre digiti o selezioni un filtro di categoria, Array.filter di JavaScript funziona sull'elenco in memoria, confrontando la tua query con il numero del codice di stato, il nome canonico, e le stringhe di descrizione breve e lunga usando String.includes — nessun ritardo di debounce, nessuna comunicazione con il server.
  3. 3
    I dettagli si espandono con il link RFC
    Ogni risultato viene reso come un elemento HTML details/summary. Espandere una voce rivela la spiegazione lunga e un link diretto all'RFC autorevole su rfc-editor.org, così puoi leggere il testo esatto della specifica per qualsiasi codice.
  4. 4
    Link diretti e copia negli appunti
    Aprire una voce aggiorna l'hash URL al numero del codice (ad es. #404), rendendo la pagina condivisibile e adatta ai preferiti. Il pulsante copia scrive la stringa canonica (ad es. '404 Not Found') negli appunti tramite l'API navigator.clipboard del browser.

Strumenti correlati

Domande frequenti