7. The HTTP Origin Header Field (Campo di intestazione HTTP Origin)
7. The HTTP Origin Header Field (Campo di intestazione HTTP Origin)
Questa sezione definisce il campo di intestazione HTTP Origin.
7.1 Syntax (Sintassi)
Il campo di intestazione Origin ha la seguente sintassi:
origin = "Origin:" OWS origin-list-or-null OWS
origin-list-or-null = %x6E %x75 %x6C %x6C / origin-list
origin-list = serialized-origin *( SP serialized-origin )
serialized-origin = scheme "://" host [ ":" port ]
; <scheme>, <host>, <port> from RFC 3986
7.2 Semantics (Semantica)
Quando incluso in una richiesta HTTP, il campo di intestazione Origin indica l'origine o le origini che hanno "causato" l'emissione della richiesta da parte dell'user agent, come definito dall'API che ha attivato l'user agent a emettere la richiesta.
Ad esempio, consideriamo un user agent che esegue script per conto delle origini. Se uno di questi script fa sì che l'user agent emetta una richiesta HTTP, l'user agent PUÒ utilizzare il campo di intestazione Origin per informare il server del contesto di sicurezza in cui lo script stava eseguendo quando ha fatto sì che l'user agent emettesse la richiesta.
In alcuni casi, un numero di origini contribuisce a far sì che l'user agent emetta una richiesta HTTP. In questi casi, l'user agent PUÒ elencare tutte le origini nel campo di intestazione Origin. Ad esempio, se la richiesta HTTP è stata inizialmente emessa da un'origine ma poi successivamente reindirizzata da un'altra origine, l'user agent PUÒ informare il server che due origini sono state coinvolte nel far sì che l'user agent emettesse la richiesta.
7.3 User Agent Requirements (Requisiti dell'user agent)
L'user agent PUÒ includere un campo di intestazione Origin in qualsiasi richiesta HTTP.
L'user agent NON DEVE includere più di un campo di intestazione Origin in alcuna richiesta HTTP.
Ogni volta che un user agent emette una richiesta HTTP da un contesto "sensibile alla privacy", l'user agent DEVE inviare il valore "null" nel campo di intestazione Origin.
NOTA: Questo documento non definisce la nozione di contesto sensibile alla privacy. Le applicazioni che generano richieste HTTP possono designare contesti come sensibili alla privacy per imporre restrizioni su come gli user agent generano campi di intestazione Origin.
Quando si genera un campo di intestazione Origin, l'user agent DEVE soddisfare i seguenti requisiti:
-
Ciascuna delle produzioni
serialized-originnella grammatica DEVE essere la serializzazione ASCII di un'origine. -
Nessuna due produzioni
serialized-originconsecutive nella grammatica possono essere identiche. In particolare, se l'user agent genererebbe due origini serializzate consecutive, l'user agent NON DEVE generare la seconda.