7. Error Codes (Codici di Errore)
I codici di errore (Error codes) sono campi a 32 bit utilizzati nei frame RST_STREAM e GOAWAY per trasmettere i motivi dell'errore di stream o connessione.
I codici di errore condividono uno spazio di codice comune. Alcuni codici di errore si applicano solo agli stream o all'intera connessione e non hanno semantiche definite nell'altro contesto.
I seguenti codici di errore sono definiti:
NO_ERROR (0x00): La condizione associata non è il risultato di un errore. Ad esempio, un GOAWAY potrebbe includere questo codice per indicare la chiusura normale di una connessione.
PROTOCOL_ERROR (0x01): L'endpoint ha rilevato un errore di protocollo non specifico. Questo errore viene utilizzato quando non è disponibile un codice di errore più specifico.
INTERNAL_ERROR (0x02): L'endpoint ha riscontrato un errore interno imprevisto.
FLOW_CONTROL_ERROR (0x03): L'endpoint ha rilevato che il suo peer ha violato il protocollo di controllo di flusso.
SETTINGS_TIMEOUT (0x04): L'endpoint non ha ricevuto una risposta a un frame SETTINGS entro un tempo ragionevole. Vedere la Sezione 6.5.3 ("Sincronizzazione delle impostazioni").
STREAM_CLOSED (0x05): L'endpoint ha ricevuto un frame dopo che uno stream è diventato half-closed.
FRAME_SIZE_ERROR (0x06): L'endpoint ha ricevuto un frame con una dimensione non valida.
REFUSED_STREAM (0x07): L'endpoint ha rifiutato lo stream prima di eseguire qualsiasi elaborazione dell'applicazione (vedere la Sezione 8.7 per i dettagli).
CANCEL (0x08): L'endpoint utilizza questo per indicare che lo stream non è più necessario.
COMPRESSION_ERROR (0x09): L'endpoint non è in grado di mantenere il contesto di compressione della sezione di campi per la connessione.
CONNECT_ERROR (0x0a): La connessione stabilita in risposta a una richiesta CONNECT (Sezione 8.5) è stata reimpostata o chiusa in modo anomalo.
ENHANCE_YOUR_CALM (0x0b): L'endpoint ha rilevato che il suo peer sta esibendo un comportamento che potrebbe generare un carico eccessivo.
INADEQUATE_SECURITY (0x0c): Il trasporto sottostante ha proprietà che non soddisfano i requisiti di sicurezza minimi (vedere la Sezione 9.2).
HTTP_1_1_REQUIRED (0x0d): L'endpoint richiede che venga utilizzato HTTP/1.1 invece di HTTP/2.
I codici di errore sconosciuti o non supportati NON DEVONO attivare alcun comportamento speciale. Questi POSSONO essere trattati da un'implementazione come equivalenti a INTERNAL_ERROR.
Capitolo 7 completato!