9. Constructing an Effective Request URI (Konstruktion eines effektiven Anforderungs-URI)
Dieser Abschnitt spezifiziert, wie HSTS-Hosts den effektiven Anforderungs-URI für empfangene HTTP-Anforderungen konstruieren müssen.
HTTP-Anforderungen tragen im Allgemeinen nicht den absoluteURI der Zielressource; stattdessen muss der URI aus dem Request-URI, dem Host-Header-Feld und dem Verbindungskontext abgeleitet werden ([RFC2616], Abschnitte 3.2.1, 5.1.2 und 5.2). Das Ergebnis dieses Prozesses wird als "effektiver Anforderungs-URI (effective request URI, ERU)" bezeichnet. Die "Zielressource (target resource)" ist die durch den effektiven Anforderungs-URI identifizierte Ressource.
9.1. ERU Fundamental Definitions (ERU-Grunddefinitionen)
Die erste Zeile Request-Line einer HTTP-Anforderungsnachricht ist durch das folgende ABNF aus Abschnitt 5.1 von [RFC2616] spezifiziert:
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
Der Request-URI in der Request-Line ist durch das folgende ABNF aus Abschnitt 5.1.2 von [RFC2616] spezifiziert:
Request-URI = "*" | absoluteURI | abs_path | authority
Das Host-Anforderungs-Header-Feld ist durch das folgende ABNF aus Abschnitt 14.23 von [RFC2616] spezifiziert:
Host = "Host" ":" host [ ":" port ]
9.2. Determining the Effective Request URI (Bestimmung des effektiven Anforderungs-URI)
Wenn der Request-URI ein absoluteURI ist, ist der effektive Anforderungs-URI der Request-URI.
Wenn der Request-URI die abs_path-Form oder Sternchen-Form verwendet und das Host-Header-Feld vorhanden ist, wird der effektive Anforderungs-URI durch Verkettung der folgenden Elemente konstruiert:
-
Der Schemaname: "http", wenn die Anforderung über eine unsichere TCP-Verbindung empfangen wurde, oder "https", wenn sie über eine durch TLS/SSL geschützte TCP-Verbindung empfangen wurde, und
-
Die Oktettfolge "://", und
-
Der Host und Port (falls vorhanden) aus dem Host-Header-Feld, und
-
Der aus der Request-Line erhaltene Request-URI, es sei denn, der Request-URI ist nur das Sternchen "*".
Wenn der Request-URI die abs_path-Form oder Sternchen-Form verwendet und das Host-Header-Feld nicht vorhanden ist, ist der effektive Anforderungs-URI undefiniert.
Andernfalls, wenn der Request-URI die authority-Form verwendet, ist der effektive Anforderungs-URI undefiniert.
Effektive Anforderungs-URIs werden unter Verwendung der in Abschnitt 3.2.3 von [RFC2616] beschriebenen Regeln verglichen, aber eine leere Pfadkomponente darf nicht (MUST NOT) als äquivalent zu einem absoluten Pfad von "/" behandelt werden.