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à.
Caching dei contenuti in base alle intestazioni di richiesta
Con CloudFront, puoi scegliere se CloudFront inoltrare le intestazioni all'origine e memorizzare nella cache versioni separate di un oggetto specificato in base ai valori dell'intestazione nelle richieste dei visualizzatori. In questo modo, puoi pubblicare diverse versioni dei tuoi contenuti in base al dispositivo utilizzato dall'utente, alla posizione dello spettatore, alla lingua utilizzata dallo spettatore e a una serie di altri criteri.
Argomenti
Configurare CloudFront in modo da rispettare le impostazioni CORS
Configurazione del caching in base alla lingua del visualizzatore
Configurazione del caching in base alla posizione del visualizzatore
Configurazione del caching in base al protocollo della richiesta
In che modo il caching basato sulle intestazioni influenza le performance
Intestazioni e distribuzioni – Panoramica
Per impostazione predefinita, CloudFront non considera le intestazioni quando memorizza nella cache gli oggetti nelle posizioni periferiche. Se l'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 configuri la cache degli oggetti in base CloudFront al valore dell'Productintestazione, CloudFront inoltra le richieste all'origine e include i logo.jpg valori dell'intestazione e dell'Productintestazione. CloudFront memorizza nella cache logo.jpg una volta per le richieste in cui è presente il valore dell'Productintestazione Acme e una volta per le richieste in cui tale 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 precedenti: se CloudFront configuri 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 specificate. CloudFront memorizza nella cache gli oggetti in base ai valori di tutte le intestazioni specificate. CloudFront inoltra anche le intestazioni inoltrate per impostazione predefinita, ma memorizza nella cache gli oggetti in base solo 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, vedi. Aggiornamento di una distribuzione Per informazioni sull'utilizzo dell' CloudFrontAPI per aggiornare una distribuzione esistente, consulta Update Distribution in Amazon CloudFront API Reference.
Selezione delle intestazioni su cui basare il caching
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 dei tuoi oggetti in base a una serie di intestazioni specifiche (consulta il seguente elenco di eccezioni). Tuttavia, ti consigliamo di evitare intestazioni di inoltro con un server di origine Amazon S3, a meno che non sia necessario implementare la condivisione delle risorse multi-origine (CORS) o si desideri personalizzare il contenuto utilizzando Lambda@Edge negli eventi relativi ai server di origine.
-
Per configurare CORS, 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 Configurare CloudFront in modo da rispettare le impostazioni CORS.
-
Per personalizzare i contenuti utilizzando le intestazioni da inoltrare all'origine di Amazon S3, è necessario scrivere e aggiungere funzioni Lambda @Edge e associarle alla CloudFront distribuzione in modo che vengano attivate da un 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. Cioè, non è CloudFront possibile soddisfare tante richieste dalle cache edge, in proporzione a tutte le richieste.
-
-
Origine personalizzata: è possibile configurare la memorizzazione nella cache in base CloudFront al valore di qualsiasi intestazione della richiesta, ad eccezione di 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 Caching dei contenuti basati su cookie. -
Host (for Amazon S3 origins) -
Proxy-Authorization -
TE -
Upgrade
È possibile CloudFront configurare la memorizzazione nella cache degli oggetti in base ai valori nelle
User-AgentintestazioniDatee, ma non è consigliabile. Queste intestazioni hanno numerosi valori possibili e la memorizzazione nella cache in base ai loro valori potrebbe causare l'inoltro CloudFront di molte più richieste all'origine. -
Per un elenco completo delle intestazioni delle richieste HTTP e di come le CloudFront elabora, consulta. Intestazioni e CloudFront comportamento delle richieste HTTP (origini personalizzate e Amazon S3)
Configurare CloudFront in modo da rispettare le impostazioni CORS
Se hai abilitato la condivisione di risorse multi-origine (CORS) su un bucket Amazon S3 o un server di origine personalizzato, devi selezionare intestazioni specifiche da inoltrare, in modo che vengano rispettate 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
OPTIONSvengano 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:
OriginAccess-Control-Request-Headers, e.Access-Control-Request-Method
-
-
Se non desideri che le risposte
OPTIONSvengano memorizzate nella cache, configura CloudFront affinché inoltri l'intestazioneOrigin, insieme ad altre intestazioni richieste dal server di origine, ad esempio,Access-Control-Request-Headers,Access-Control-Request-Methodo 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 a CORS, è necessario CloudFront configurare l'inoltro delle intestazioni utilizzando una politica di cache. Per ulteriori informazioni, consulta Controllo della chiave della cache con una policy.
Per ulteriori informazioni su CORS e Amazon S3, consulta Utilizzo delle funzionalità Cross-Origin Resource Sharing (CORS) nella Guida per l’utente di Amazon Simple Storage Service.
Configurazione del caching in base al tipo di dispositivo
Se desideri CloudFront memorizzare nella cache diverse versioni dei tuoi oggetti in base al dispositivo utilizzato da un utente per visualizzare i tuoi contenuti, configura in modo CloudFront da inoltrare le 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-Agentintestazione, CloudFront imposta il valore di queste intestazioni all'inoltro 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 dispositivi tablet, CloudFront potrebbe impostare entrambi e su. CloudFront-Is-Mobile-Viewer CloudFront-Is-Tablet-Viewer true
Configurazione del caching 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-Languageintestazione all'origine.
Configurazione del caching 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 in modo da CloudFront inoltrare l'CloudFront-Viewer-Countryintestazione all'origine. CloudFront converte automaticamente l'indirizzo IP da cui proviene la richiesta in un prefisso internazionale di due lettere. Per una elenco dei codici Paese semplice da usare, ordinabile per codice e per nome paese, vedi la voce Wikipedia ISO 3166-1 alfa-2
Configurazione del caching in base al protocollo della richiesta
Se desideri CloudFront memorizzare nella cache diverse versioni dei tuoi oggetti in base al protocollo della richiesta, HTTP o HTTPS, configura in modo CloudFront da inoltrare l'CloudFront-Forwarded-Protointestazione all'origine.
Configurazione del caching 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 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 tale intestazione.
Se CloudFront configuri l'inoltro di 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 B:2 e un'altra contiene A:1 B:2A:1, CloudFront memorizza nella cache solo una copia dell'oggetto.
In che modo il formato delle intestazioni e dei valori delle intestazioni si ripercuotono sul caching
Quando CloudFront memorizza nella cache in base ai valori dell'intestazione, non considera le maiuscole e minuscole del nome dell'intestazione, ma considera le maiuscole e minuscole del valore dell'intestazione:
-
Se le richieste del visualizzatore includono entrambi
Product:Acmeeproduct:Acme, CloudFront memorizza un oggetto nella cache una sola 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 entrambe
Product:AcmeeProduct:acme, CloudFront memorizza un oggetto nella cache due volte, perché il valore è presenteAcmein alcune richieste eacmein altre.
Intestazioni che CloudFront restituiscono allo spettatore
La configurazione CloudFront per inoltrare e memorizzare le intestazioni non influisce sulle intestazioni CloudFront restituite al visualizzatore. CloudFront restituisce tutte le intestazioni che riceve dall'origine con alcune eccezioni. Per ulteriori informazioni, consulta l’argomento applicabile:
-
Origini di Amazon S3 Consulta Intestazioni di risposta HTTP che rimuovono o aggiornano CloudFront.
-
Origini personalizzate Consulta Intestazioni di risposta HTTP che CloudFront rimuovono o sostituiscono.