Zum Hauptinhalt springen

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.