Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Memorizza i contenuti della cache in base alle intestazioni delle richieste
CloudFront consente di scegliere se CloudFront inoltrare le intestazioni all'origine e memorizzare nella cache versioni separate di un oggetto specificato in base ai valori di intestazione nelle richieste dei visualizzatori. In questo modo è possibile distribuire diverse versioni dei tuoi contenuti in base al dispositivo che l'utente utilizza, alla posizione del visualizzatore, al linguaggio utilizzato dal visualizzatore e a un'ampia gamma di altri criteri.
Argomenti
- Intestazioni e distribuzioni – Panoramica
- Seleziona le intestazioni su cui basare la memorizzazione nella cache
- Configura CloudFront per rispettare CORS le impostazioni
- Configura la memorizzazione nella cache in base al tipo di dispositivo
- Configura la memorizzazione nella cache in base alla lingua del visualizzatore
- Configura la memorizzazione nella cache in base alla posizione del visualizzatore
- Configura la memorizzazione nella cache in base al protocollo della richiesta
- Configura la memorizzazione nella cache per i file compressi
- In che modo il caching basato sulle intestazioni influenza le performance
- In che modo il formato delle intestazioni e dei valori delle intestazioni si ripercuotono sul caching
- Intestazioni che vengono CloudFront restituite al visualizzatore
Intestazioni e distribuzioni – Panoramica
Per impostazione predefinita, CloudFront non considera le intestazioni quando memorizza nella cache gli oggetti in posizioni periferiche. Se la tua origine restituisce due oggetti che differiscono solo per i valori nelle intestazioni della richiesta, CloudFront memorizza nella cache solo una versione dell'oggetto.
È possibile configurare CloudFront l'inoltro delle intestazioni all'origine, il che comporta CloudFront la memorizzazione nella cache di più versioni di un oggetto in base ai valori di una o più intestazioni di richiesta. CloudFront Per configurare la memorizzazione nella cache degli oggetti in base ai valori di intestazioni specifiche, specificate le impostazioni di comportamento della cache per la distribuzione. Per ulteriori informazioni, consulta Cache basata su intestazioni di richiesta selezionate.
Ad esempio, supponiamo che le richieste del visualizzatore per logo.jpg
contengano un'intestazione personalizzata Product
con un valore di Acme
o Apex
. Quando CloudFront configurate la memorizzazione nella cache degli oggetti in base al valore dell'Product
intestazione, CloudFront inoltra le richieste all'origine e include i logo.jpg
valori dell'intestazione e dell'Product
intestazione. CloudFront memorizza nella cache logo.jpg
una volta per le richieste in cui si trova il valore dell'Product
intestazione Acme
e una volta per le richieste in cui si trova il valore. Apex
Puoi configurare ogni comportamento cache in una distribuzione per eseguire una delle seguenti operazioni:
-
Inoltro di tutte le intestazioni al server di origine
Nota
Per le impostazioni della cache legacy: se si configura CloudFront l'inoltro di tutte le intestazioni all'origine, CloudFront non memorizza nella cache gli oggetti associati a questo comportamento della cache. ma invia ogni richiesta all'origine.
-
Inoltra un elenco di intestazioni che hai specificato. CloudFront memorizza nella cache gli oggetti in base ai valori di tutte le intestazioni specificate. CloudFront inoltra anche le intestazioni che inoltra per impostazione predefinita, ma memorizza nella cache gli oggetti solo in base alle intestazioni specificate.
-
Inoltra solo le intestazioni predefinite. In questa configurazione, CloudFront non memorizza nella cache gli oggetti in base ai valori nelle intestazioni della richiesta.
Per conoscere la quota corrente relativa al numero di intestazioni che puoi inoltrare per ogni comportamento cache o per richiedere una quota superiore, consulta Quote delle intestazioni.
Per informazioni sull'utilizzo della CloudFront console per aggiornare una distribuzione in modo da CloudFront inoltrare le intestazioni all'origine, consulta. Aggiornamento di una distribuzione Per informazioni sull'utilizzo di per CloudFront API aggiornare una distribuzione esistente, consulta Update Distribution in Amazon CloudFront API Reference.
Seleziona le intestazioni su cui basare la memorizzazione nella cache
Le intestazioni che puoi inoltrare all'origine e su cui si CloudFront basa la memorizzazione nella cache dipendono dal fatto che l'origine sia un bucket Amazon S3 o un'origine personalizzata.
-
Amazon S3: puoi configurare CloudFront l'inoltro e la memorizzazione nella cache degli oggetti in base a una serie di intestazioni specifiche (consulta il seguente elenco di eccezioni). Tuttavia, ti consigliamo di evitare di inoltrare le intestazioni con un'origine Amazon S3 a meno che non sia necessario implementare la condivisione di risorse tra le origini (CORS) o non desideri personalizzare i contenuti utilizzando Lambda @Edge negli eventi rivolti all'origine.
-
Per configurareCORS, devi inoltrare le intestazioni che consentono di distribuire contenuti per siti Web abilitati CloudFront alla condivisione di risorse tra origini (). CORS Per ulteriori informazioni, consulta Configura CloudFront per rispettare CORS le impostazioni.
-
Per personalizzare i contenuti utilizzando le intestazioni da inoltrare all'origine Amazon S3, è necessario scrivere e aggiungere funzioni Lambda @Edge e associarle alla distribuzione in modo che vengano attivate da un CloudFront evento rivolto all'origine. Per ulteriori informazioni sull'utilizzo delle intestazioni per personalizzare contenuti, consulta Esempi di personalizzazione del contenuto in base alle intestazioni del paese o del tipo di dispositivo.
Consigliamo di evitare di inoltrare le intestazioni non utilizzate per personalizzare i contenuti perché inoltrare intestazioni aggiuntive può ridurre il rapporto di occorrenza nella cache. In altre parole, non è CloudFront possibile gestire tante richieste provenienti dalle cache edge quanto una percentuale di tutte le richieste.
-
-
Origine personalizzata: puoi configurare la memorizzazione nella cache in base CloudFront al valore di qualsiasi intestazione di richiesta tranne quanto segue:
-
Connection
-
Cookie
– Se desideri inoltrare e memorizzare nella cache in base ai cookie, devi utilizzare un'impostazione separate nella tua distribuzione. Per ulteriori informazioni, consulta Contenuto della cache basato sui cookie. -
Host (for Amazon S3 origins)
-
Proxy-Authorization
-
TE
-
Upgrade
Puoi CloudFront configurare la memorizzazione nella cache degli oggetti in base ai valori nelle
User-Agent
intestazioniDate
and, ma non è consigliabile. Queste intestazioni hanno numerosi valori possibili e la memorizzazione nella cache in base ai loro valori potrebbe causare CloudFront l'inoltro di un numero significativamente maggiore di richieste all'origine. -
Per un elenco completo delle intestazioni delle HTTP richieste e di come le CloudFront elabora, consulta. HTTPintestazioni e CloudFront comportamento delle richieste (origini personalizzate e Amazon S3)
Configura CloudFront per rispettare CORS le impostazioni
Se hai abilitato la condivisione di risorse tra origini (CORS) su un bucket Amazon S3 o un'origine personalizzata, devi scegliere intestazioni specifiche da inoltrare, per rispettare le impostazioni. CORS Le intestazioni che devi inoltrare variano a seconda del server di origine (Amazon S3 o personalizzato) e della volontà di memorizzare nella cache le risposte OPTIONS
.
Amazon S3
-
Se desideri che le risposte
OPTIONS
vengano memorizzate nella cache, esegui le operazioni descritte di seguito:-
Scegli le opzioni per le impostazioni predefinite di comportamento della cache che abilitano la memorizzazione nella cache per le risposte
OPTIONS
. -
Configura CloudFront per inoltrare le seguenti intestazioni:, e.
Origin
Access-Control-Request-Headers
Access-Control-Request-Method
-
-
Se non desideri che
OPTIONS
le risposte vengano memorizzate nella cache, configura l'inoltro dell'Origin
intestazione, insieme CloudFront a qualsiasi altra intestazione richiesta dall'origine (ad esempio,Access-Control-Request-Headers
Access-Control-Request-Method
, o altre).
Server di origine personalizzati – Inoltra l'intestazione Origin
insieme a qualsiasi altra intestazione richiesta dal server di origine.
CloudFront Per configurare la memorizzazione nella cache delle risposte in base CloudFront aCORS, devi configurare l'inoltro delle intestazioni utilizzando una politica di cache. Per ulteriori informazioni, consulta Controlla la chiave della cache con una policy.
Per ulteriori informazioni su CORS Amazon S3, consulta Using cross-origin resource sharing (CORS) nella Amazon Simple Storage Service User Guide.
Configura la memorizzazione nella cache in base al tipo di dispositivo
Se desideri CloudFront memorizzare nella cache diverse versioni dei tuoi oggetti in base al dispositivo utilizzato dall'utente per visualizzare i contenuti, configura CloudFront l'inoltro delle intestazioni applicabili all'origine personalizzata:
-
CloudFront-Is-Desktop-Viewer
-
CloudFront-Is-Mobile-Viewer
-
CloudFront-Is-SmartTV-Viewer
-
CloudFront-Is-Tablet-Viewer
In base al valore dell'User-Agent
intestazione, CloudFront imposta il valore di queste intestazioni su true
o false
prima dell'inoltro della richiesta all'origine. Se il dispositivo ricade in più di una categoria, allora più di un valore potrebbe essere true
. Ad esempio, per alcuni tablet, CloudFront potrebbe impostare entrambi e su. CloudFront-Is-Mobile-Viewer
CloudFront-Is-Tablet-Viewer
true
Configura la memorizzazione nella cache in base alla lingua del visualizzatore
Se desideri CloudFront memorizzare nella cache diverse versioni dei tuoi oggetti in base alla lingua specificata nella richiesta, configura CloudFront l'inoltro dell'Accept-Language
intestazione all'origine.
Configura la memorizzazione nella cache in base alla posizione del visualizzatore
Se desideri CloudFront memorizzare nella cache diverse versioni dei tuoi oggetti in base al paese da cui proviene la richiesta, configura CloudFront l'inoltro dell'CloudFront-Viewer-Country
intestazione all'origine. CloudFront converte automaticamente l'indirizzo IP da cui proviene la richiesta in un codice del paese di due lettere. Per un easy-to-use elenco dei codici dei paesi, ordinabili per codice e per nome del paese, consulta la voce ISO di Wikipedia 3166-1 alpha-2.
Configura la memorizzazione nella cache in base al protocollo della richiesta
Se desideri CloudFront memorizzare nella cache diverse versioni dei tuoi oggetti in base al protocollo della richiestaHTTPS, HTTP oppure configuralo CloudFront per inoltrare l'CloudFront-Forwarded-Proto
intestazione all'origine.
Configura la memorizzazione nella cache per i file compressi
Se la tua origine supporta la compressione Brotli, puoi memorizzare nella cache in base all’intestazione Accept-Encoding
. Configurare il caching solo in base a Accept-Encoding
se l'origine distribuisce diversi contenuti in base all'intestazione.
In che modo il caching basato sulle intestazioni influenza le performance
Quando configuri la cache in base CloudFront a una o più intestazioni e le intestazioni hanno più di un valore possibile, CloudFront inoltra più richieste al server di origine per lo stesso oggetto. Questo rallenta le prestazioni e aumenta il carico di lavoro del server di origine. Se il tuo server di origine restituisce lo stesso oggetto indipendentemente dal valore di una determinata intestazione, ti consigliamo di non configurare la cache in base CloudFront a quell'intestazione.
Se configuri CloudFront per inoltrare più di un'intestazione, l'ordine delle intestazioni nelle richieste dei visualizzatori non influisce sulla memorizzazione nella cache, purché i valori siano gli stessi. Ad esempio, se una richiesta contiene le intestazioni A:1, B:2 e un'altra richiesta contiene B:2, A:1, memorizza nella cache solo una copia dell'oggetto. CloudFront
In che modo il formato delle intestazioni e dei valori delle intestazioni si ripercuotono sul caching
Quando viene CloudFront memorizzata nella cache in base ai valori dell'intestazione, non considera le maiuscole e le minuscole del nome dell'intestazione, ma considera le maiuscole e minuscole del valore dell'intestazione:
-
Se le richieste del visualizzatore includono entrambi
Product:Acme
eproduct:Acme
, CloudFront memorizza un oggetto nella cache solo una volta. L'unica differenza tra loro è il caso del nome dell'intestazione, che non interessa la memorizzazione nella cache. -
Se le richieste del visualizzatore includono entrambi
Product:Acme
eProduct:acme
, CloudFront memorizza un oggetto nella cache due volte, perché il valore è presenteAcme
in alcune richieste eacme
in altre.
Intestazioni che vengono CloudFront restituite al visualizzatore
La configurazione CloudFront per l'inoltro e la memorizzazione delle intestazioni nella cache non influisce sulle intestazioni CloudFront restituite al visualizzatore. CloudFront restituisce tutte le intestazioni che ottiene dall'origine con alcune eccezioni. Per ulteriori informazioni, consulta l'argomento applicabile:
-
Origini di Amazon S3 Consulta HTTPintestazioni di risposta che rimuovono o aggiornano CloudFront.
-
Origini personalizzate Consulta HTTPintestazioni di risposta che CloudFront rimuovono o sostituiscono.