Zum Hauptinhalt springen

7. Error Codes (Fehlercodes)

Fehlercodes (Error codes) sind 32-Bit-Felder, die in RST_STREAM- und GOAWAY-Frames verwendet werden, um die Gründe für Stream- oder Verbindungsfehler zu übermitteln.

Fehlercodes teilen sich einen gemeinsamen Code-Raum. Einige Fehlercodes gelten nur für Streams oder die gesamte Verbindung und haben im jeweils anderen Kontext keine definierten Semantiken.

Die folgenden Fehlercodes sind definiert:

NO_ERROR (0x00): Die zugehörige Bedingung ist nicht das Ergebnis eines Fehlers. Beispielsweise kann ein GOAWAY diesen Code enthalten, um einen ordnungsgemäßen Verbindungsabschluss anzuzeigen.

PROTOCOL_ERROR (0x01): Der Endpunkt hat einen unspezifischen Protokollfehler erkannt. Dieser Fehler wird verwendet, wenn kein spezifischerer Fehlercode verfügbar ist.

INTERNAL_ERROR (0x02): Der Endpunkt ist auf einen unerwarteten internen Fehler gestoßen.

FLOW_CONTROL_ERROR (0x03): Der Endpunkt hat festgestellt, dass sein Peer gegen das Flusskontrollprotokoll verstoßen hat.

SETTINGS_TIMEOUT (0x04): Der Endpunkt hat innerhalb einer angemessenen Zeit keine Antwort auf einen SETTINGS-Frame erhalten. Siehe Abschnitt 6.5.3 („Einstellungssynchronisation").

STREAM_CLOSED (0x05): Der Endpunkt hat einen Frame erhalten, nachdem ein Stream halb geschlossen war.

FRAME_SIZE_ERROR (0x06): Der Endpunkt hat einen Frame mit einer ungültigen Größe erhalten.

REFUSED_STREAM (0x07): Der Endpunkt hat den Stream abgelehnt, bevor eine Anwendungsverarbeitung durchgeführt wurde (siehe Abschnitt 8.7 für Details).

CANCEL (0x08): Der Endpunkt verwendet dies, um anzuzeigen, dass der Stream nicht mehr benötigt wird.

COMPRESSION_ERROR (0x09): Der Endpunkt kann den Feldabschnittskomprimierungskontext für die Verbindung nicht aufrechterhalten.

CONNECT_ERROR (0x0a): Die als Antwort auf eine CONNECT-Anfrage (Abschnitt 8.5) hergestellte Verbindung wurde zurückgesetzt oder abnormal geschlossen.

ENHANCE_YOUR_CALM (0x0b): Der Endpunkt hat festgestellt, dass sein Peer ein Verhalten zeigt, das möglicherweise übermäßige Last erzeugt.

INADEQUATE_SECURITY (0x0c): Der zugrunde liegende Transport hat Eigenschaften, die die Mindestsicherheitsanforderungen nicht erfüllen (siehe Abschnitt 9.2).

HTTP_1_1_REQUIRED (0x0d): Der Endpunkt erfordert, dass HTTP/1.1 anstelle von HTTP/2 verwendet wird.

Unbekannte oder nicht unterstützte Fehlercodes DÜRFEN KEIN spezielles Verhalten auslösen. Diese KÖNNEN von einer Implementierung als äquivalent zu INTERNAL_ERROR behandelt werden.


Kapitel 7 abgeschlossen!