Zum Hauptinhalt springen

2.2. Derived Components (Abgeleitete Komponenten)

2.2. Derived Components (Abgeleitete Komponenten)

Neben HTTP-Feldern gibt es verschiedene Komponenten, die aus Steuerdaten (control data), Signaturkontext oder anderen Aspekten der signierten HTTP-Nachricht abgeleitet werden können. Solche abgeleiteten Komponenten (derived components) können in die Signaturbasis aufgenommen werden, indem ein Komponentenname, mögliche Parameter, Nachrichtenziele (message targets) und die Ableitungsmethode für den Komponentenwert festgelegt werden.

Namen abgeleiter Komponenten MÜSSEN mit dem Zeichen „at“ (@) beginnen. Damit unterscheiden sie sich von HTTP-Feldnamen, die laut Abschnitt 5.1 von [HTTP] kein @ enthalten dürfen. Verarbeiter von HTTP-Nachrichtensignaturen MÜSSEN Namen abgeleiteter Komponenten getrennt von Feldnamen behandeln (Abschnitt 7.5.1).

Diese Spezifikation definiert folgende abgeleitete Komponenten:

@method Die für eine Anfrage verwendete Methode (Abschnitt 2.2.1).

@target-uri Die vollständige Ziel-URI (target URI) einer Anfrage (Abschnitt 2.2.2).

@authority Die Authority der Ziel-URI einer Anfrage (Abschnitt 2.2.3).

@scheme Das Schema der Ziel-URI einer Anfrage (Abschnitt 2.2.4).

@request-target Das Request Target (Abschnitt 2.2.5).

@path Der absolute Pfadteil der Ziel-URI einer Anfrage (Abschnitt 2.2.6).

@query Der Query-Teil der Ziel-URI einer Anfrage (Abschnitt 2.2.7).

@query-param Ein geparster und kodiertes Query-Parameter der Ziel-URI einer Anfrage (Abschnitt 2.2.8).

@status Der Statuscode einer Antwort (Abschnitt 2.2.9).

Weitere Namen sind im Register „HTTP Signature Derived Component Names“ (Abschnitt 6.4) definiert.

Werte abgeleiteter Komponenten stammen aus dem Kontext der Zielnachricht (target message) für die Signatur. Dazu gehören Informationen über die Nachricht selbst (z. B. Steuerdaten) sowie zusätzlicher Zustand und Kontext beim Signierenden oder Verifizierenden. Insbesondere kann beim Signieren einer Antwort der Signierende abgeleitete Komponenten der auslösenden Anfrage über den Parameter req einbinden (Abschnitt 2.4).

request: Werte, die aus einer HTTP-Anfragenachricht abgeleitet werden und darauf angewendet werden, wie in Abschnitt 3.4 von [HTTP] beschrieben. Ist die Zielnachricht der Signatur eine Antwort, KÖNNEN abgeleitete Komponenten, die Anfragen adressieren, mit dem Parameter req wie in Abschnitt 2.4 eingebunden werden.

response: Werte, die aus einer HTTP-Antwortnachricht abgeleitet werden und darauf angewendet werden, wie in Abschnitt 3.4 von [HTTP] beschrieben.

request, response: Werte, die aus einer Anfrage- oder Antwortnachricht abgeleitet werden und auf eine von beiden angewendet werden können.

Die Definition einer abgeleiteten Komponente MUSS alle Zielnachrichtentypen angeben, auf die sie angewendet werden kann.

Werte abgeleiteter Komponenten MÜSSEN auf druckbare Zeichen und Leerzeichen beschränkt sein und DÜRFEN KEINE Zeilenumbruchszeichen enthalten. Sie DÜRFEN NICHT mit Whitespace beginnen oder enden.