Aller au contenu principal

7. Error Codes (Codes d'Erreur)

Les codes d'erreur (Error codes) sont des champs de 32 bits utilisés dans les trames RST_STREAM et GOAWAY pour transmettre les raisons de l'erreur de flux ou de connexion.

Les codes d'erreur partagent un espace de code commun. Certains codes d'erreur s'appliquent uniquement soit aux flux soit à l'ensemble de la connexion et n'ont pas de sémantique définie dans l'autre contexte.

Les codes d'erreur suivants sont définis :

NO_ERROR (0x00) : La condition associée n'est pas le résultat d'une erreur. Par exemple, un GOAWAY peut inclure ce code pour indiquer l'arrêt normal d'une connexion.

PROTOCOL_ERROR (0x01) : Le point de terminaison a détecté une erreur de protocole non spécifique. Cette erreur est utilisée lorsqu'un code d'erreur plus spécifique n'est pas disponible.

INTERNAL_ERROR (0x02) : Le point de terminaison a rencontré une erreur interne inattendue.

FLOW_CONTROL_ERROR (0x03) : Le point de terminaison a détecté que son pair a violé le protocole de contrôle de flux.

SETTINGS_TIMEOUT (0x04) : Le point de terminaison n'a pas reçu de réponse à une trame SETTINGS dans un délai raisonnable. Voir la Section 6.5.3 (« Synchronisation des paramètres »).

STREAM_CLOSED (0x05) : Le point de terminaison a reçu une trame après qu'un flux soit devenu half-closed.

FRAME_SIZE_ERROR (0x06) : Le point de terminaison a reçu une trame avec une taille invalide.

REFUSED_STREAM (0x07) : Le point de terminaison a refusé le flux avant d'effectuer tout traitement d'application (voir la Section 8.7 pour plus de détails).

CANCEL (0x08) : Le point de terminaison utilise ceci pour indiquer que le flux n'est plus nécessaire.

COMPRESSION_ERROR (0x09) : Le point de terminaison est incapable de maintenir le contexte de compression de la section de champs pour la connexion.

CONNECT_ERROR (0x0a) : La connexion établie en réponse à une requête CONNECT (Section 8.5) a été réinitialisée ou fermée anormalement.

ENHANCE_YOUR_CALM (0x0b) : Le point de terminaison a détecté que son pair présente un comportement qui pourrait générer une charge excessive.

INADEQUATE_SECURITY (0x0c) : Le transport sous-jacent a des propriétés qui ne répondent pas aux exigences de sécurité minimales (voir la Section 9.2).

HTTP_1_1_REQUIRED (0x0d) : Le point de terminaison exige que HTTP/1.1 soit utilisé au lieu de HTTP/2.

Les codes d'erreur inconnus ou non pris en charge NE DOIVENT PAS déclencher de comportement spécial. Ceux-ci PEUVENT être traités par une implémentation comme étant équivalents à INTERNAL_ERROR.


Chapitre 7 terminé !