Aggiunta di intestazioni della richiesta CloudFront - Amazon CloudFront

Aggiunta di intestazioni della richiesta CloudFront

È possibile configurare CloudFront per aggiungere intestazioni HTTP specifiche alle richieste ricevute da CloudFront dai visualizzatori e gli inoltri all'origine o alla funzione edge. I valori di queste intestazioni HTTP sono basati sulle caratteristiche del visualizzatore o della richiesta del visualizzatore. Le intestazioni forniscono informazioni relative al tipo di dispositivo, indirizzo IP, posizione geografica, protocollo di richiesta (HTTP o HTTPS), versione HTTP, dettagli della connessione TLS, impronta JA3 e impronta JA4 del visualizzatore. Puoi anche configurare il comportamento della cache della distribuzione per inoltrare intestazioni WebSocket. Per ulteriori informazioni, consulta Utilizzo di WebSocket con le distribuzioni CloudFront.

Con queste intestazioni, l'origine o la funzione edge può ricevere informazioni sul visualizzatore senza la necessità da parte dell'utente di scrivere il proprio codice per determinare tali informazioni. Se l'origine restituisce risposte diverse in base alle informazioni contenute in queste intestazioni, è possibile includerle nella chiave cache in modo che le risposte vengano memorizzate nella cache di CloudFront separatamente. Ad esempio, l'origine potrebbe rispondere con contenuti in una lingua specifica in base al paese in cui si trova il visualizzatore o con contenuti personalizzati per un tipo di dispositivo specifico. L'origine potrebbe anche scrivere queste intestazioni nei file di registro, che è possibile utilizzare per determinare le informazioni su dove si trovano i visualizzatori, quali tipi di dispositivi utilizzano e altro ancora.

Se si desidera includere intestazioni nella chiave della cache, utilizzare una policy della cache. Per ulteriori informazioni, consulta Controllo della chiave della cache con una policy e Comprensione della chiave della cache.

Per ricevere queste intestazioni alla tua origine, ma non includerle nella chiave cache, utilizzare una policy di richiesta di origine. Per ulteriori informazioni, consulta Controllo delle richieste di origine con una policy.

Intestazioni del tipo di dispositivo

È possibile aggiungere le seguenti intestazioni per determinare il tipo di dispositivo del visualizzatore. In base al valore dell'intestazione User-Agent, CloudFront imposta il valore di queste intestazioni su true o false. Se il dispositivo ricade in più di una categoria, allora più di un valore potrebbe essere true. Ad esempio, per alcuni dispositivi tablet, CloudFront imposta CloudFront-Is-Mobile-Viewer e CloudFront-Is-Tablet-Viewer su true.

  • CloudFront-Is-Android-Viewer - Impostare su true quando CloudFront stabilisce che il visualizzatore è un dispositivo con il sistema operativo Android.

  • CloudFront-Is-Desktop-Viewer - Impostare su true quando CloudFront stabilisce che il visualizzatore è un dispositivo desktop.

  • CloudFront-Is-IOS-Viewer - Impostare su true quando CloudFront stabilisce che il visualizzatore è un dispositivo con un sistema operativo mobile Apple, come iPhone, iPod touch e alcuni dispositivi iPad.

  • CloudFront-Is-Mobile-Viewer - Impostare su true quando CloudFront stabilisce che il visualizzatore è un dispositivo mobile.

  • CloudFront-Is-SmartTV-Viewer - Impostare su true quando CloudFront stabilisce che il visualizzatore è una smart TV.

  • CloudFront-Is-Tablet-Viewer - Impostare su true quando CloudFront stabilisce che il visualizzatore è un tablet.

Intestazioni di posizione del visualizzatore

È possibile aggiungere le seguenti intestazioni per stabilire la posizione del visualizzatore. CloudFront determina i valori per queste intestazioni in base all'indirizzo IP del visualizzatore. Per i caratteri non ASCII nei valori delle intestazioni, CloudFront codifica in percentuale i caratteri in base alla sezione 1.2 della RFC 3986.

  • CloudFront-Viewer-Address - Contiene l'indirizzo IP del visualizzatore e la porta di origine della richiesta. Ad esempio, un valore di intestazione di 198.51.100.10:46532 significa che l'indirizzo IP del visualizzatore è 198.51.100.10 e la porta di origine della richiesta è 46532.

  • CloudFront-Viewer-ASN - Contiene il numero di sistema autonomo (ASN) del visualizzatore.

    Nota

    È possibile aggiungere CloudFront-Viewer-Address e CloudFront-Viewer-ASN in una policy di richiesta di origine, ma non in una policy della cache.

  • CloudFront-Viewer-Country - Contiene il codice paese di due lettere per il Paese del visualizzatore. Per un elenco dei codici paese, vedere ISO 3166-1 alpha-2.

  • CloudFront-Viewer-City - Contiene il nome della città del visualizzatore.

Quando aggiungi le seguenti intestazioni, CloudFront le applica a tutte le richieste, eccetto quelle che hanno origine dal network AWS:

  • CloudFront-Viewer-Country-Name - Contiene il nome del Paese del visualizzatore.

  • CloudFront-Viewer-Country-Region - Contiene un codice (fino a tre caratteri) che rappresenta la regione del visualizzatore. La regione è la suddivisione di primo livello (la più ampia o meno specifica) del codice ISO 3166-2.

  • CloudFront-Viewer-Country-Region-Name - Contiene il nome della regione del visualizzatore. La regione è la suddivisione di primo livello (la più ampia o meno specifica) del codice ISO 3166-2.

  • CloudFront-Viewer-Latitude - Contiene la latitudine approssimativa del visualizzatore.

  • CloudFront-Viewer-Longitude - Contiene la longitudine approssimativa del visualizzatore.

  • CloudFront-Viewer-Metro-Code - Contiene il codice metro del visualizzatore. Questo è presente solo quando il visualizzatore è negli Stati Uniti.

  • CloudFront-Viewer-Postal-Code - Contiene il codice postale del visualizzatore.

  • CloudFront-Viewer-Time-Zone Contiene il fuso orario del visualizzatore, in formato database del fuso orario IANA (ad esempio, America/Los_Angeles).

Nota

CloudFront-Viewer-City, CloudFront-Viewer-Metro-Code e CloudFront-Viewer-Postal-Code potrebbero non essere disponibili per ogni indirizzo IP. Alcuni indirizzi IP non possono essere geolocalizzati con sufficiente precisione per ottenere tali informazioni.

Intestazioni per determinare la struttura dell’intestazione del visualizzatore

È possibile aggiungere le seguenti intestazioni per identificare il visualizzatore in base alle intestazioni che invia. Ad esempio, browser diversi possono inviare le intestazioni HTTP in un determinato ordine. Se il browser specificato nell'intestazione User-Agent non corrisponde all'ordine di intestazione previsto per quel browser, è possibile rifiutare la richiesta. Inoltre, se il valore CloudFront-Viewer-Header-Count non corrisponde al numero di intestazioni in CloudFront-Viewer-Header-Order, è possibile rifiutare la richiesta.

  • CloudFront-Viewer-Header-Order: contiene i nomi delle intestazioni del visualizzatore nell'ordine richiesto, separati dai due punti. Ad esempio: CloudFront-Viewer-Header-Order: Host:User-Agent:Accept:Accept-Encoding. Le intestazioni oltre il limite di 7.680 caratteri vengono troncate.

  • CloudFront-Viewer-Header-Count: contiene il numero totale delle intestazioni del visualizzatore.

Puoi aggiungere le seguenti intestazioni per determinare l’impronta JA3, l’impronta JA4 e i dettagli della connessione TLS del visualizzatore:

  • CloudFront-Viewer-JA3-Fingerprint: contiene l'impronta JA3 del visualizzatore. L'impronta JA3 può aiutare a determinare se la richiesta proviene da un client noto, se si tratta di malware o bot dannoso o di un'applicazione prevista (presente nell'elenco di quelle consentite).

  • CloudFront-Viewer-JA4-Fingerprint: contiene l'impronta JA4 del visualizzatore. Analogamente all’impronta JA3, l’impronta JA4 può aiutare a determinare se la richiesta proviene da un client noto, se si tratta di malware o bot dannoso o di un’applicazione prevista (presente nell’elenco di quelle consentite). Puoi utilizzare l’impronta per creare un database di utenti buoni o malintenzionati noti da utilizzare durante l’ispezione delle richieste HTTP. Puoi quindi controllare il valore dell’intestazione sui server web delle applicazioni o in Lambda@Edge e Funzioni CloudFront per confrontare il valore dell’intestazione con un elenco di impronte di malware conosciute per bloccare i client dannosi.

  • CloudFront-Viewer-TLS – Contiene la versione SSL/TLS, il cifrario e le informazioni sull'handshake SSL/TLS utilizzato per la connessione tra il visualizzatore e CloudFront. Il valore dell'intestazione è nel seguente formato:

    SSL/TLS_version:cipher:handshake_information

    Per handshake_information, l'intestazione può contenere uno dei seguenti valori:

    • fullHandshake — È stato eseguito un handshake completo per la sessione SSL/TLS.

    • sessionResumed — Una precedente sessione SSL/TLS è stata ripresa.

    • connectionReused — Una precedente connessione SSL/TLS è stata riutilizzata.

    Di seguito sono riportati alcuni valori di esempio per questa intestazione:

    TLSv1.3:TLS_AES_128_GCM_SHA256:sessionResumed
    TLSv1.2:ECDHE-ECDSA-AES128-GCM-SHA256:connectionReused
    TLSv1.1:ECDHE-RSA-AES128-SHA256:fullHandshake
    TLSv1:ECDHE-RSA-AES256-SHA:fullHandshake

    Per l'elenco completo delle possibili versioni e cifrature SSL/TLS che possono essere presenti in questo valore di intestazione, consulta Protocolli e cifrari supportati tra gli visualizzatori e CloudFront.

Note
  • Le impronte digitali JA3 e JA4 derivano dal pacchetto Client Hello SSL/TLS. Sono presenti solo per le richieste HTTPS.

  • Per queste intestazioni correlate a TLS, puoi aggiungerle a una policy di richiesta di origine, ma non a una policy della cache.

Altre intestazioni CloudFront

Puoi aggiungere le seguenti intestazioni per determinare l’URI della richiesta originale del visualizzatore, i parametri e i valori della stringa di query della richiesta originale, il protocollo e la versione:

  • CloudFront-Error-Uri: contiene l’URI della richiesta originale ricevuto dal visualizzatore.

  • CloudFront-Error-Args: contiene i parametri e i valori della stringa di query della richiesta originale.

  • CloudFront-Forwarded-Proto - Contiene il protocollo della richiesta del visualizzatore (HTTP o HTTPS).

  • CloudFront-Viewer-Http-Version - Contiene la versione HTTP della richiesta del visualizzatore.