Passa al contenuto principale

9. Constructing an Effective Request URI (Costruzione di un URI di Richiesta Effettivo)

Questa sezione specifica come gli host HSTS devono costruire l'URI di richiesta effettivo per le richieste HTTP ricevute.

Le richieste HTTP generalmente non trasportano l'absoluteURI della risorsa di destinazione; invece, l'URI deve essere dedotto dal Request-URI, dal campo di intestazione Host e dal contesto di connessione ([RFC2616], sezioni 3.2.1, 5.1.2 e 5.2). Il risultato di questo processo è chiamato "URI di richiesta effettivo (effective request URI, ERU)". La "risorsa di destinazione (target resource)" è la risorsa identificata dall'URI di richiesta effettivo.

9.1. ERU Fundamental Definitions (Definizioni Fondamentali ERU)

La prima riga Request-Line di un messaggio di richiesta HTTP è specificata dal seguente ABNF della sezione 5.1 di [RFC2616]:

Request-Line   = Method SP Request-URI SP HTTP-Version CRLF

Il Request-URI nella Request-Line è specificato dal seguente ABNF della sezione 5.1.2 di [RFC2616]:

Request-URI    = "*" | absoluteURI | abs_path | authority

Il campo di intestazione di richiesta Host è specificato dal seguente ABNF della sezione 14.23 di [RFC2616]:

Host = "Host" ":" host [ ":" port ]

9.2. Determining the Effective Request URI (Determinazione dell'URI di Richiesta Effettivo)

Se il Request-URI è un absoluteURI, allora l'URI di richiesta effettivo è il Request-URI.

Se il Request-URI utilizza la forma abs_path o asterisco, e il campo di intestazione Host è presente, allora l'URI di richiesta effettivo viene costruito concatenando quanto segue:

  • Il nome dello schema: "http" se la richiesta è ricevuta tramite una connessione TCP non sicura, o "https" quando è ricevuta tramite una connessione TCP protetta da TLS/SSL, e

  • La sequenza di ottetti "://", e

  • L'host e la porta (se presente) dal campo di intestazione Host, e

  • Il Request-URI ottenuto dalla Request-Line, a meno che il Request-URI non sia solo l'asterisco "*".

Se il Request-URI utilizza la forma abs_path o asterisco, e il campo di intestazione Host non è presente, allora l'URI di richiesta effettivo è indefinito.

Altrimenti, quando il Request-URI utilizza la forma authority, l'URI di richiesta effettivo è indefinito.

Gli URI di richiesta effettivi vengono confrontati utilizzando le regole descritte nella sezione 3.2.3 di [RFC2616], ma un componente percorso vuoto non deve (MUST NOT) essere trattato come equivalente a un percorso assoluto di "/".