Comprendi le politiche relative alla 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à.

Comprendi le politiche relative alla cache

Puoi utilizzare una policy sulla cache per migliorare il rapporto di accessi alla cache controllando i valori (stringhe di query URL, intestazioni HTTP e cookie) inclusi nella chiave della cache. CloudFrontfornisce alcune politiche di cache predefinite, note come politiche 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 Usa politiche di 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) interagiscono con le intestazioni Cache-Control e Expires HTTP (se sono presenti nella risposta di origine) per determinare per quanto tempo gli oggetti nella CloudFront cache restano validi.

Minimum TTL (TTL minimo)

Il periodo di tempo minimo, in secondi, durante il quale gli oggetti devono rimanere nella CloudFront cache prima di CloudFront eseguire controlli con l'origine per verificare se l'oggetto è stato aggiornato. Per ulteriori informazioni, consulta Gestisci la durata della permanenza dei contenuti nella cache (scadenza).

Maximum TTL (TTL massimo)

Il periodo massimo di permanenza, in secondi, degli oggetti nella CloudFront cache prima di CloudFront effettuare controlli con l'origine per verificare se l'oggetto è stato aggiornato. CloudFront utilizza questa impostazione solo quando l'origine invia Cache-Control o inserisce le Expires intestazioni con l'oggetto. Per ulteriori informazioni, consulta Gestisci la durata della permanenza dei contenuti nella cache (scadenza).

Default TTL (TTL di default)

Il periodo di tempo predefinito, in secondi, durante il quale desiderate che gli oggetti rimangano nella CloudFront cache prima CloudFront dei controlli con l'origine per verificare se l'oggetto è stato aggiornato. CloudFront utilizza il valore di questa impostazione come TTL dell'oggetto solo quando l'origine non invia Cache-Control o non contiene Expires intestazioni con l'oggetto. Per ulteriori informazioni, consulta Gestisci la durata della permanenza dei contenuti nella cache (scadenza).

Nota

Se le impostazioni TTL minimo, TTL massimo e TTL predefinito sono tutte impostate su 0, la memorizzazione nella cache viene disabilitata. CloudFront

Impostazioni chiave cache

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

Le impostazioni della chiave della cache includono:

Headers

Le intestazioni HTTP nelle richieste dei visualizzatori CloudFront incluse nella chiave della 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, incluso il relativo valore, nella chiave della cache e nelle richieste di origine.

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

Cookie

I cookie nelle richieste dei visualizzatori CloudFront incluse nella chiave della 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, incluso il suo valore, nella chiave della cache e nelle richieste di origine.

Stringhe di query

Le stringhe di query URL nelle richieste dei visualizzatori CloudFront incluse nella chiave della 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 relativo valore, nella chiave della cache e nelle richieste di origine.

Supporto della compressione

Queste impostazioni consentono CloudFront di richiedere e memorizzare nella cache gli oggetti compressi nei formati di compressione Gzip o Brotli, quando il visualizzatore li supporta. Queste impostazioni consentono CloudFront inoltre il funzionamento della compressione. 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, usa l'impostazione abilitata EnableAcceptEncodingGzip per Gzip (impostata su true nell' CloudFront API, negli AWS SDK o AWS CloudFormation). AWS CLI

  • 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, usa l'impostazione Brotli enabled (impostata EnableAcceptEncodingBrotli su nell' CloudFront API, true negli AWS SDK o). AWS CLI AWS CloudFormation

  • Il comportamento della cache a cui è associata questa politica sulla cache è configurato con la compressione. CloudFront In questo caso, è possibile abilitare la memorizzazione nella cache per Gzip o Brotli, o entrambi. Quando CloudFront la compressione è abilitata, l'attivazione della memorizzazione nella cache per entrambi i formati può aiutare a ridurre i costi per il trasferimento dei dati su Internet.

Nota

Se abiliti la memorizzazione nella cache per uno o entrambi questi formati di compressione, non includere l'Accept-Encodingintestazione in una policy di richiesta di origine associata allo stesso comportamento della cache. CloudFrontinclude sempre questa intestazione nelle richieste di origine quando la memorizzazione nella cache è abilitata per uno di questi formati, quindi 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 CloudFront compressione, 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 spiegato 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'Accept-Encodingintestazione, 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, ovvero se br i valori gzip and sono entrambi presenti nell'Accept-Encodingintestazione della richiesta del visualizzatore, effettua le seguenti operazioni: CloudFront

  • 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 edge location non ha un oggetto compresso Brotli o Gzip nella cache che corrisponda alla richiesta e non sia scaduto, CloudFront include l'header () normalizzato nella richiesta di origine corrispondente. Accept-Encoding: br,gzip 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'Accept-Encodingintestazione della richiesta del visualizzatore ma non lo è, esegue le seguenti operazioni: br CloudFront

  • 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 edge location non ha un oggetto compresso Gzip nella cache che corrisponda alla richiesta e non sia scaduto, CloudFront include l'header normalizzato () nella richiesta di origine corrispondente. Accept-Encoding: gzip La richiesta di origine non include altri valori presenti nell'intestazione Accept-Encoding inviata dal visualizzatore.

Per capire cosa succede CloudFront se il visualizzatore supporta Brotli ma non Gzip, sostituite i due formati di compressione tra loro nell'esempio precedente.

Se il visualizzatore non supporta Brotli o Gzip, ovvero l'Accept-Encodingintestazione nella richiesta del visualizzatore non contiene o ha valori: br gzip 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 cui è 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 della richiesta del visualizzatore), esegue le seguenti operazioni: Accept-Encoding CloudFront

  • 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 edge location non ha un oggetto compresso Gzip nella cache che corrisponde alla richiesta e non è scaduto, CloudFront include l'header normalizzato (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 CloudFront succede se la memorizzazione nella cache degli oggetti compressi è abilitata per Brotli ma non per Gzip, sostituite i due formati di compressione tra loro nell'esempio precedente.

Se il visualizzatore non supporta il formato di compressione per il quale è abilitata la memorizzazione nella cache (l'Accept-Encodingintestazione 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 come qualsiasi altra Accept-Encoding 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.