Informazioni sulle policy della cache - Amazon CloudFront

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à.

Informazioni sulle policy della cache

È possibile utilizzare una policy della cache per migliorare il rapporto di accessi della cache controllando i valori (stringhe di query URL, intestazioni HTTP e cookie) inclusi nella chiave della cache. CloudFront fornisce alcune policy della cache predefinite, note come policy gestite, per casi d'uso comuni. È possibile utilizzare queste policy gestite oppure creare policy della cache personalizzate specifiche per le proprie esigenze. Per ulteriori informazioni sulle policy gestite, consulta Utilizzo delle policy della cache gestite.

Una policy della cache contiene le seguenti impostazioni, suddivise in informazioni sulle policy, impostazioni TTL (Time to Live) e impostazioni della chiave della cache.

Informazioni sulle policy

Nome

Un nome per identificare la policy della cache. Nella console, è possibile utilizzare il nome per collegare la policy della cache a un comportamento della cache.

Descrizione

Un commento per descrivere la policy della cache. Questo è facoltativo, ma può aiutare a identificare lo scopo della policy della cache.

Impostazioni Time to Live (TTL)

Le impostazioni Time to Live (TTL) funzionano insieme alle intestazioni HTTP Cache-Control e Expires (se si trovano nella risposta di origine) per determinare quanto tempo gli oggetti nella cache CloudFront rimangono validi.

Minimum TTL (TTL minimo)

Il tempo minimo, in secondi, in cui si desidera che gli oggetti rimangano nella cache CloudFront prima che CloudFront verifichi l'origine per stabilire se l'oggetto è stato aggiornato. Per ulteriori informazioni, consulta Gestione della durata di permanenza dei contenuti nella cache (scadenza).

avvertimento

Se il TTL minimo è maggiore di 0, CloudFront memorizzerà nella cache il contenuto almeno per la durata specificata nel TTL minimo della policy della cache, anche se le direttive Cache-Control: no-cache, no-store o private sono presenti nelle intestazioni di origine.

Maximum TTL (TTL massimo)

Il tempo massimo, in secondi, in cui si desidera che gli oggetti rimangano nella cache CloudFront prima che CloudFront verifichi l'origine per stabilire se l'oggetto è stato aggiornato. CloudFront utilizza questa impostazione solo quando l'origine invia le intestazioni Cache-Control o Expires con l'oggetto. Per ulteriori informazioni, consulta Gestione della durata di permanenza dei contenuti nella cache (scadenza).

Default TTL (TTL di default)

Il tempo predefinito, in secondi, in cui si desidera che gli oggetti rimangano nella cache CloudFront prima che CloudFront verifichi l'origine per stabilire se l'oggetto è stato aggiornato. CloudFront utilizza il valore di questa impostazione come TTL dell'oggetto solo quando l'origine non invia intestazioni Cache-Control o Expires con l'oggetto. Per ulteriori informazioni, consulta Gestione della durata di permanenza dei contenuti nella cache (scadenza).

Nota

Se le impostazioni TTL minimo, TTL massimo e TTL predefinito sono tutte impostate su 0, ciò disabilita il caching di CloudFront.

Impostazioni chiave cache

Le impostazioni della chiave della cache specificano i valori nelle richieste del visualizzatore che CloudFront include nella chiave della cache. I valori possono includere stringhe di query URL, intestazioni HTTP e cookie. I valori inclusi nella chiave cache vengono automaticamente inclusi nelle richieste che CloudFront invia all'origine, note come richieste di origine. Per informazioni sul controllo delle richieste di origine senza influire sulla chiave della cache, consulta Controllo delle richieste di origine con una policy.

Le impostazioni della chiave della cache includono:

Headers

Le intestazioni HTTP nelle richieste del visualizzatore che CloudFront include nella chiave cache e nelle richieste di origine. Per le intestazioni puoi scegliere una delle seguenti impostazioni:

  • None (Nessuna) - Le intestazioni HTTP nelle richieste del visualizzatore non sono incluse nella chiave della cache e non vengono incluse automaticamente nelle richieste di origine.

  • Includere le seguenti intestazioni - Si specifica quali intestazioni HTTP nelle richieste del visualizzatore sono incluse nella chiave della cache e incluse automaticamente nelle richieste di origine.

Quando si utilizza l'impostazione Includere le seguenti intestazioni, si specificano le intestazioni HTTP in base al loro nome e non al loro valore. Considera, ad esempio, la seguente intestazione HTTP:

Accept-Language: en-US,en;q=0.5

In questo caso, si specifica l'intestazione come Accept-Language, non come Accept-Language: en-US,en;q=0.5. Tuttavia, CloudFront include l'intestazione completa, compreso il suo valore, nella chiave cache e nelle richieste di origine.

È inoltre possibile includere alcune intestazioni generate da CloudFront nella chiave cache. Per ulteriori informazioni, consulta Aggiunta di intestazioni della richiesta CloudFront.

Cookie

I cookie nelle richieste del visualizzatore che CloudFront include nella chiave cache e nelle richieste di origine. Per i cookie puoi scegliere una delle seguenti impostazioni:

  • None (Nessuno) - I cookie nelle richieste del visualizzatore non sono inclusi nella chiave cache e non vengono automaticamente inclusi nelle richieste di origine.

  • All (Tutti) - I cookie nelle richieste del visualizzatore sono inclusi nella chiave cache e vengono automaticamente inclusi nelle richieste di origine.

  • Includere cookie specifici - Si specifica quali cookie nelle richieste del visualizzatore sono inclusi nella chiave cache e automaticamente inclusi nelle richieste di origine.

  • Includere tutti i cookie tranne - Si specifica quali cookie nelle richieste del visualizzatore non sono inclusi nella chiave cache e non vengono automaticamente inclusi nelle richieste di origine. Tutti gli altri cookie, eccetto quelli specificati, sono inclusi nella chiave cache e automaticamente inclusi nelle richieste di origine.

Quando si utilizza l'impostazione Includere i cookie specificati o Includere tutti i cookie tranne, si specificano i cookie in base al loro nome e non al loro valore. Considera, ad esempio, l’intestazione Cookie seguente.

Cookie: session_ID=abcd1234

In questo caso, si specifica il cookie come session_ID, non come session_ID=abcd1234. Tuttavia, CloudFront include il cookie completo, compreso il suo valore, nella chiave cache e nelle richieste di origine.

Stringhe di query

Le stringhe di query URL nelle richieste di visualizzatore che CloudFront include nella chiave cache e nelle richieste di origine. Per le stringhe di query, è possibile scegliere una delle seguenti impostazioni:

  • None (Nessuna) - Le stringhe di query nelle richieste del visualizzatore non sono incluse nella chiave cache e non vengono automaticamente incluse nelle richieste di origine.

  • All (Tutte) - Le stringhe di query nelle richieste del visualizzatore sono incluse nella chiave della cache e vengono incluse automaticamente nelle richieste di origine.

  • Includere stringhe di query specifiche - Si specifica quali stringhe di query nelle richieste del visualizzatore devono essere incluse nella chiave cache e incluse automaticamente nelle richieste di origine.

  • Includere tutte le stringhe di query tranne - Si specifica quali stringhe di query nelle richieste del visualizzatore non sono incluse nella chiave cache e non vengono automaticamente incluse nelle richieste di origine. Tutte le altre stringhe di query, eccetto quelle specificate, sono incluse nella chiave cache e incluse automaticamente nelle richieste di origine.

Quando si utilizza l'impostazione Includere le stringhe di query specificate o Includere tutte le stringhe di query, si specificano le stringhe di query in base al loro nome e non al loro valore. Considera, ad esempio, il seguente percorso URL:

/content/stories/example-story.html?split-pages=false

In questo caso, si specifica la stringa di query come split-pages, non come split-pages=false. Tuttavia, CloudFront include la stringa di query completa, incluso il suo valore, nella chiave cache e nelle richieste di origine.

Nota

Per le impostazioni della chiave della cache, CloudFront tratta il carattere asterisco (*) per le intestazioni, le stringhe di query e i cookie come una stringa letterale, non come un carattere jolly.

Supporto della compressione

Queste impostazioni consentono a CloudFront di richiedere e memorizzare nella cache oggetti compressi nei formati di compressione Gzip o Brotli, quando il visualizzatore li supporta. Queste impostazioni consentono anche il funzionamento della compressione CloudFront. I visualizzatori indicano il loro supporto per questi formati di compressione con l'intestazione Accept-Encoding HTTP.

Nota

I browser web Chrome e Firefox supportano la compressione Brotli solo quando la richiesta viene inviata utilizzando HTTPS. Questi browser non supportano Brotli con richieste HTTP.

Attivare queste impostazioni quando si verifica una delle seguenti condizioni:

  • La tua origine restituisce oggetti compressi Gzip quando i visualizzatori li supportano (le richieste contengono l'intestazione Accept-Encoding HTTP con gzip come valore). In questo caso, utilizza l'impostazione Abilitato per Gzip (imposta EnableAcceptEncodingGzip su true nell'API CloudFront, negli SDK AWS, in AWS CLI o CloudFormation).

  • L'origine restituisce oggetti compressi Brotli quando i visualizzatori li supportano (le richieste contengono l'intestazione Accept-Encoding HTTP con br come valore). In questo caso, utilizza l'impostazione Abilitato per Brotli (imposta EnableAcceptEncodingBrotli su true nell'API CloudFront, negli SDK AWS, in AWS CLI o CloudFormation).

  • Il comportamento della cache a cui è collegata questa policy della cache è configurato con la Compressione CloudFront. In questo caso, è possibile abilitare la memorizzazione nella cache per Gzip o Brotli, o entrambi. Quando la compressione CloudFront è abilitata, abilitare la memorizzazione nella cache per entrambi i formati può contribuire a ridurre i costi per il trasferimento dei dati su Internet.

Nota

Se si abilita la memorizzazione nella cache per uno o entrambi questi formati di compressione, non includere l'intestazione Accept-Encoding in una policy di richiesta di origine associata allo stesso comportamento della cache. CloudFront include sempre questa intestazione nelle richieste di origine quando la memorizzazione nella cache è abilitata per uno di questi formati, pertanto l'inclusione Accept-Encoding in una policy di richiesta di origine non ha alcun effetto.

Se il server di origine non restituisce oggetti compressi Gzip o Brotli o il comportamento della cache non è configurato con la compressione CloudFront, non abilitare la memorizzazione nella cache per gli oggetti compressi. Se lo fai, potrebbe causare una diminuzione del tuo rapporto di hit della cache.

Di seguito viene illustrato come queste impostazioni influiscono su una distribuzione CloudFront. Tutti gli scenari seguenti presuppongono che la richiesta del visualizzatore includa l'intestazione Accept-Encoding. Quando la richiesta del visualizzatore non include l'intestazione Accept-Encoding, CloudFront non include questa intestazione nella chiave della cache e non la include nella richiesta di origine corrispondente.

Quando la memorizzazione nella cache degli oggetti compressi è attivata per entrambi i formati di compressione

Se il visualizzatore supporta sia Gzip che Brotli, cioè se i valori gzip e br sono entrambi nell'intestazione Accept-Encoding nella richiesta del visualizzatore, CloudFront procede come segue:

  • Normalizza l'intestazione Accept-Encoding: br,gzip e include l'intestazione normalizzata nella chiave della cache. La chiave della cache non include altri valori presenti nell'intestazione Accept-Encoding inviata dal visualizzatore.

  • Se la posizione del bordo contiene un oggetto compresso Brotli o Gzip nella cache che corrisponde alla richiesta e non è scaduto, la posizione del bordo restituisce l'oggetto al visualizzatore.

  • Se la posizione edge non ha un oggetto compresso Brotli o Gzip nella cache che corrisponde alla richiesta e non è scaduto, CloudFront include l'intestazione normalizzata (Accept-Encoding: br,gzip) nella richiesta di origine corrispondente. La richiesta di origine non include altri valori presenti nell'intestazione Accept-Encoding inviata dal visualizzatore.

Se il visualizzatore supporta un formato di compressione ma non l'altro, ad esempio, se gzip è un valore nell'intestazione Accept-Encoding nella richiesta del visualizzatore ma br non lo è, CloudFront esegue le seguenti operazioni:

  • Normalizza l'intestazione Accept-Encoding: gzip e include l'intestazione normalizzata nella chiave della cache. La chiave della cache non include altri valori presenti nell'intestazione Accept-Encoding inviata dal visualizzatore.

  • Se la posizione edge contiene un oggetto compresso Gzip nella cache che corrisponde alla richiesta e non è scaduto, la posizione edge restituisce l'oggetto al visualizzatore.

  • Se la posizione edge non ha un oggetto Gzip compresso nella cache che corrisponde alla richiesta e non è scaduto, CloudFront include l'intestazione normalizzata (Accept-Encoding: gzip) nella richiesta di origine corrispondente. La richiesta di origine non include altri valori presenti nell'intestazione Accept-Encoding inviata dal visualizzatore.

Per capire cosa fa CloudFront se il visualizzatore supporta Brotli ma non Gzip, sostituire i due formati di compressione l'uno con l'altro nell'esempio precedente.

Se il visualizzatore non supporta Brotli o GZip, cioè se l'intestazione Accept-Encoding nella richiesta del visualizzatore non contiene br o gzip come valori, CloudFront:

  • Non include l'intestazione Accept-Encoding nella chiave della cache.

  • Include Accept-Encoding: identity nella richiesta di origine corrispondente. La richiesta di origine non include altri valori presenti nell'intestazione Accept-Encoding inviata dal visualizzatore.

Quando la memorizzazione nella cache degli oggetti compressi è abilitata per un formato di compressione, ma non per l'altro

Se il visualizzatore supporta il formato per il quale è abilitata la memorizzazione nella cache, ad esempio, se la memorizzazione nella cache degli oggetti compressi è abilitata per Gzip e il visualizzatore supporta Gzip (gzip è uno dei valori nell'intestazione Accept-Encoding nella richiesta del visualizzatore), CloudFront procede come segue:

  • Normalizza l'intestazione Accept-Encoding: gzip e include l'intestazione normalizzata nella chiave della cache.

  • Se la posizione edge contiene un oggetto compresso Gzip nella cache che corrisponde alla richiesta e non è scaduto, la posizione edge restituisce l'oggetto al visualizzatore.

  • Se la posizione edge non ha un oggetto Gzip compresso nella cache che corrisponde alla richiesta e non è scaduto, CloudFront include l'intestazione normalizzata (Accept-Encoding: gzip) nella richiesta di origine corrispondente. La richiesta di origine non include altri valori presenti nell'intestazione Accept-Encoding inviata dal visualizzatore.

Questo comportamento è lo stesso quando il visualizzatore supporta sia Gzip che Brotli (l'intestazione Accept-Encoding nella richiesta del visualizzatore include entrambi gzip e br come valori), perché in questo scenario, la memorizzazione nella cache degli oggetti compressi per Brotli non è abilitata.

Per capire cosa fa CloudFront se la memorizzazione nella cache degli oggetti compressi è abilitata per Brotli ma non per Gzip, sostituire i due formati di compressione l'uno con l'altro nell'esempio precedente.

Se il visualizzatore non supporta il formato di compressione per il quale è abilitata la memorizzazione nella cache (l'intestazione Accept-Encoding nella richiesta del visualizzatore non contiene il valore per quel formato), CloudFront:

  • Non include l'intestazione Accept-Encoding nella chiave della cache.

  • Include Accept-Encoding: identity nella richiesta di origine corrispondente. La richiesta di origine non include altri valori presenti nell'intestazione Accept-Encoding inviata dal visualizzatore.

Quando la memorizzazione nella cache degli oggetti compressi è disabilitata per entrambi i formati

Quando la memorizzazione nella cache degli oggetti compressi è disabilitata per entrambi i formati di compressione, CloudFront tratta l'intestazione Accept-Encoding allo stesso modo di qualsiasi altra intestazione HTTP nella richiesta del visualizzatore. Per impostazione predefinita, non è inclusa nella chiave della cache e non è inclusa nelle richieste di origine. È possibile includerla nell'elenco delle intestazioni in una policy della cache o in una policy di richiesta di origine come qualsiasi altra intestazione HTTP.