

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
<a name="header-caching"></a>

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.

**Topics**
+ [Intestazioni e distribuzioni – Panoramica](#header-caching-web)
+ [Selezione delle intestazioni su cui basare il caching](#header-caching-web-selecting)
+ [Configurare CloudFront per rispettare le impostazioni CORS](#header-caching-web-cors)
+ [Configurazione del caching in base al tipo di dispositivo](#header-caching-web-device)
+ [Configurazione del caching in base alla lingua del visualizzatore](#header-caching-web-language)
+ [Configurazione del caching in base alla posizione del visualizzatore](#header-caching-web-location)
+ [Configurazione del caching in base al protocollo della richiesta](#header-caching-web-protocol)
+ [Configurazione del caching per i file compressi](#header-caching-web-compressed)
+ [In che modo il caching basato sulle intestazioni influenza le performance](#header-caching-web-performance)
+ [In che modo il formato delle intestazioni e dei valori delle intestazioni si ripercuotono sul caching](#header-caching-web-case)
+ [Intestazioni che vengono CloudFront restituite al visualizzatore](#header-caching-web-response)

## Intestazioni e distribuzioni – Panoramica
<a name="header-caching-web"></a>

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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesForwardHeaders).

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](cloudfront-limits.md#limits-custom-headers).

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](HowToUpdateDistribution.md) Per informazioni sull'utilizzo dell' CloudFrontAPI per aggiornare una distribuzione esistente, consulta [Update Distribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) in *Amazon CloudFront API Reference*.

## Selezione delle intestazioni su cui basare il caching
<a name="header-caching-web-selecting"></a>

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 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, è necessario inoltrare le intestazioni che consentono CloudFront di distribuire contenuti per siti Web abilitati per la condivisione di risorse tra le origini (CORS). Per ulteriori informazioni, consulta [Configurare CloudFront per rispettare le impostazioni CORS](#header-caching-web-cors). 
  + 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](lambda-examples.md#lambda-examples-redirecting-examples).

    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 [Caching dei contenuti basati su cookie](Cookies.md).
  + `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` intestazioni `Date` 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 richieste HTTP e di come le CloudFront elabora, consulta. [Intestazioni e CloudFront comportamento delle richieste HTTP (origini personalizzate e Amazon S3)](RequestAndResponseBehaviorCustomOrigin.md#request-custom-headers-behavior)

## Configurare CloudFront per rispettare le impostazioni CORS
<a name="header-caching-web-cors"></a>

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 `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: `Origin``Access-Control-Request-Headers`, e. `Access-Control-Request-Method`
+ Se non desideri che le risposte `OPTIONS` vengano memorizzate nella cache, configura CloudFront affinché inoltri l'intestazione `Origin`, insieme ad altre intestazioni richieste dal server di 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 basate su 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](controlling-the-cache-key.md).

Per ulteriori informazioni su CORS e Amazon S3, consulta [Utilizzo delle funzionalità Cross-Origin Resource Sharing (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) nella *Guida per l’utente di Amazon Simple Storage Service*.

## Configurazione del caching in base al tipo di dispositivo
<a name="header-caching-web-device"></a>

Se desideri CloudFront memorizzare nella cache diverse versioni dei tuoi oggetti in base al dispositivo utilizzato dall'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-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`

## Configurazione del caching in base alla lingua del visualizzatore
<a name="header-caching-web-language"></a>

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.

## Configurazione del caching in base alla posizione del visualizzatore
<a name="header-caching-web-location"></a>

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 di Wikipedia [ISO](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) 3166-1 alpha-2.

## Configurazione del caching in base al protocollo della richiesta
<a name="header-caching-web-protocol"></a>

Se desideri CloudFront memorizzare nella cache diverse versioni dei tuoi oggetti in base al protocollo della richiesta, HTTP o HTTPS, configura l'inoltro dell'`CloudFront-Forwarded-Proto`intestazione CloudFront all'origine.

## Configurazione del caching per i file compressi
<a name="header-caching-web-compressed"></a>

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
<a name="header-caching-web-performance"></a>

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
<a name="header-caching-web-case"></a>

Quando viene CloudFront memorizzata nella cache in base ai valori dell'intestazione, non considera le maiuscole e le minuscole del nome dell'intestazione, ma le maiuscole e minuscole del valore dell'intestazione:
+ Se le richieste del visualizzatore includono entrambi `Product:Acme` e`product: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` e`Product:acme`, CloudFront memorizza un oggetto nella cache due volte, perché il valore è presente `Acme` in alcune richieste e `acme` in altre.

## Intestazioni che vengono CloudFront restituite al visualizzatore
<a name="header-caching-web-response"></a>

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 [Intestazioni di risposta HTTP che rimuovono o aggiornano CloudFront](RequestAndResponseBehaviorS3Origin.md#response-s3-removed-headers).
+ **Origini personalizzate ** Consulta [Intestazioni di risposta HTTP che CloudFront rimuovono o sostituiscono](RequestAndResponseBehaviorCustomOrigin.md#ResponseCustomRemovedHeaders).