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à.
Servire file compressi
È possibile CloudFront utilizzarlo per comprimere automaticamente determinati tipi di oggetti (file) e servire gli oggetti compressi quando i visualizzatori (browser Web o altri client) li supportano. I visualizzatori indicano il loro supporto per gli oggetti compressi con l'intestazione. Accept-Encoding
HTTP
CloudFront può comprimere oggetti utilizzando i formati di compressione Gzip e Brotli. Quando il visualizzatore supporta entrambi i formati ed entrambi sono presenti nel server di cache raggiunto, preferisce Brotli. CloudFront Se nel server cache è presente un solo formato di compressione, CloudFront lo restituisce.
Se ci sono richieste successive del visualizzatore per lo stesso oggetto, CloudFront restituisce la prima versione memorizzata nella cache. Ad esempio, se un visualizzatore richiede un oggetto specifico che utilizza la compressione Gzip e l'oggetto viene memorizzato nella cache e il visualizzatore accetta il formato Gzip, le richieste successive allo stesso oggetto restituiranno sempre la versione Gzip, anche se il visualizzatore accetta sia Brotli che Gzip.
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 le richieste. HTTP
Quando gli oggetti richiesti sono compressi, i download possono essere più rapidi in quanto gli oggetti sono più piccoli; in alcuni casi, meno di un quarto della dimensione originale. Soprattutto per CSS i file JavaScript e, i download più rapidi possono comportare un rendering più rapido delle pagine Web per gli utenti. Inoltre, poiché il costo del trasferimento dei CloudFront dati si basa sulla quantità totale di dati forniti, servire oggetti compressi può essere meno costoso che servirli non compressi.
Alcune origini personalizzate possono anche comprimere gli oggetti. La tua origine potrebbe essere in grado di comprimere oggetti che CloudFront non si comprimono (vedi). Tipi di file che CloudFront comprime Se la tua origine restituisce un oggetto compresso a CloudFront, CloudFront rileva che l'oggetto è compresso in base alla presenza di un'Content-Encoding
intestazione e non comprime nuovamente l'oggetto.
CloudFront Configura per comprimere gli oggetti
CloudFront Per configurare la compressione degli oggetti, aggiorna il comportamento della cache in base al quale desideri utilizzare gli oggetti compressi effettuando tutte le seguenti operazioni:
-
Assicurarsi che l'impostazione Compress Objects Automatically (Comprimi oggetti automaticamente) risulti come Sì. (In AWS CloudFormation o il CloudFront API, impostato su
Compress
.)true
-
Usare una policy di cache per specificare le impostazioni di memorizzazione nella cache e verificare che le impostazioni Gzip e Brotli siano entrambe abilitate. (In AWS CloudFormation o the CloudFrontAPI, set
EnableAcceptEncodingGzip
andEnableAcceptEncodingBrotli
totrue
.) -
Assicurati che i TTL valori nella politica della cache siano impostati su un valore maggiore di zero. Quando impostate i TTL valori su zero, la memorizzazione nella cache del contenuto compresso è disabilitata.
Per aggiornare un comportamento della cache, è possibile utilizzare uno dei seguenti strumenti:
Come funziona CloudFront la compressione
Quando CloudFront configuri per comprimere gli oggetti (vedi la sezione precedente), ecco come funziona:
-
Un visualizzatore richiede un oggetto. Il visualizzatore include l'
Accept-Encoding
HTTPintestazione nella richiesta e il valore dell'intestazione include ogzip
entrambibr
. Questo indica che il visualizzatore supporta gli oggetti compressi. Quando il visualizzatore supporta sia Gzip che Brotli, preferisce Brotli. CloudFrontNota
I browser Web Chrome e Firefox supportano la compressione Brotli solo quando la richiesta viene inviata utilizzando. HTTPS Questi browser non supportano Brotli con le richieste. HTTP
-
Nella posizione periferica, CloudFront verifica la presenza di una copia compressa dell'oggetto richiesto nella cache.
-
Se l'oggetto compresso è già presente nella cache, lo CloudFront invia al visualizzatore e salta i passaggi rimanenti.
Se l'oggetto compresso non è nella cache, CloudFront inoltra la richiesta all'origine.
Nota
Se una copia non compressa dell'oggetto è già nella cache, CloudFront potrebbe inviarla al visualizzatore senza inoltrare la richiesta all'origine. Ad esempio, ciò può accadere quando CloudFront in precedenza si è saltata la compressione. Quando ciò accade, CloudFront memorizza nella cache l'oggetto non compresso e continua a utilizzarlo fino alla scadenza, all'eliminazione o all'invalidazione dell'oggetto.
-
Se l'origine restituisce un oggetto compresso, come indicato dalla presenza di un'
Content-Encoding
intestazione nella HTTP risposta, CloudFront invia l'oggetto compresso al visualizzatore, lo aggiunge alla cache e salta il passaggio rimanente. CloudFront non comprime nuovamente l'oggetto.Se l'origine restituisce un oggetto non compresso a CloudFront (non c'è un'
Content-Encoding
intestazione nella HTTP risposta), CloudFront determina se l'oggetto è comprimibile. Per ulteriori informazioni su come CloudFront determina se un oggetto è comprimibile, consultate la sezione seguente. -
Se l'oggetto è comprimibile, lo CloudFront comprime, lo invia al visualizzatore e lo aggiunge alla cache. (In rari casi, CloudFront potrebbe saltare la compressione e inviare l'oggetto non compresso al visualizzatore.)
Quando comprime gli oggetti CloudFront
L'elenco seguente fornisce ulteriori informazioni su quando CloudFront comprime gli oggetti.
- La richiesta utilizza 1.0 HTTP
-
Se una richiesta CloudFront utilizza HTTP 1.0, CloudFront rimuove l'
Accept-Encoding
intestazione e non comprime l'oggetto nella risposta. - Intestazione della richiesta
Accept-Encoding
-
Se l'
Accept-Encoding
intestazione non è presente nella richiesta del visualizzatore o se non contienegzip
obr
non è un valore, CloudFront non comprime l'oggetto nella risposta. Se l'Accept-Encoding
intestazione include valori aggiuntivi, ad esempiodeflate
, li CloudFront rimuove prima di inoltrare la richiesta all'origine.Quando CloudFront è configurato per comprimere gli oggetti, include automaticamente l'
Accept-Encoding
intestazione nella chiave della cache e nelle richieste di origine. - Contenuti dinamici
-
CloudFront non sempre comprime i contenuti dinamici. Le risposte per i contenuti dinamici a volte vengono compresse mentre altre volte no.
- Il contenuto viene già memorizzato nella cache quando si configura la compressione degli CloudFront oggetti
-
CloudFront comprime gli oggetti quando li recupera dall'origine. Quando si configura CloudFront per comprimere oggetti, CloudFront non comprime gli oggetti che sono già memorizzati nella cache nelle posizioni laterali. Inoltre, quando un oggetto memorizzato nella cache scade in una posizione CloudFront periferica e inoltra un'altra richiesta per l'oggetto all'origine, CloudFront non comprime l'oggetto quando l'origine restituisce un codice di HTTP stato 304, il che significa che la posizione di bordo ha già la versione più recente dell'oggetto. Se desiderate CloudFront comprimere oggetti che sono già memorizzati nella cache nelle posizioni periferiche, dovete invalidare tali oggetti. Per ulteriori informazioni, consulta Invalida i file per rimuovere il contenuto.
- L'origine è già configurata per comprimere gli oggetti
-
Se configurate CloudFront per comprimere oggetti e l'origine comprime anche gli oggetti, l'origine deve includere un'
Content-Encoding
intestazione, che indichi che l'oggetto è già compresso. CloudFront Quando una risposta proveniente da un'origine include l'Content-Encoding
intestazione, CloudFront non comprime l'oggetto, indipendentemente dal valore dell'intestazione. CloudFrontinvia la risposta al visualizzatore e memorizza l'oggetto nella cache nella posizione del bordo. - Tipi di file che comprimono CloudFront
-
Per un elenco completo dei tipi di file CloudFront compressi, vedere. Tipi di file che CloudFront comprime
- Dimensioni degli oggetti che si comprimono CloudFront
-
CloudFront comprime oggetti di dimensioni comprese tra 1.000 e 10.000.000 di byte.
Content-Length
Intestazione-
L'origine deve includere un'
Content-Length
intestazione nella risposta, che viene CloudFront utilizzata per determinare se la dimensione dell'oggetto rientra nell'intervallo di compressione. CloudFront Se l'Content-Length
intestazione è mancante, contiene un valore non valido o contiene un valore che non rientra nell'intervallo di dimensioni, la compressione CloudFront non comporta la CloudFront compressione dell'oggetto. - HTTPcodice di stato della risposta
-
CloudFront comprime gli oggetti solo quando il codice di HTTP stato della risposta è
200
403
, o404
. - La risposta non ha corpo
-
Quando la HTTP risposta dall'origine non ha corpo, non c'è nulla CloudFront da comprimere.
ETag
Intestazione-
CloudFront a volte modifica l'
ETag
intestazione nella HTTP risposta quando comprime gli oggetti. Per ulteriori informazioni, consulta Conversione dell'intestazione ETag. - CloudFront salta la compressione
-
CloudFront comprime gli oggetti nel miglior modo possibile. In rari casi, CloudFront salta la compressione. CloudFront prende questa decisione in base a una serie di fattori, inclusa la capacità dell'host. Se CloudFront salta la compressione di un oggetto, memorizza nella cache l'oggetto non compresso e continua a mostrarlo ai visualizzatori fino alla scadenza, all'eliminazione o all'invalidazione dell'oggetto.
Tipi di file che CloudFront comprime
Se configurate CloudFront per comprimere oggetti, comprime CloudFront solo gli oggetti che hanno uno dei seguenti valori nell'intestazione della risposta: Content-Type
-
application/dash+xml
-
application/eot
-
application/font
-
application/font-sfnt
-
application/javascript
-
application/json
-
application/opentype
-
application/otf
-
application/pdf
-
application/pkcs7-mime
-
application/protobuf
-
application/rss+xml
-
application/truetype
-
application/ttf
-
application/vnd.apple.mpegurl
-
application/vnd.mapbox-vector-tile
-
application/vnd.ms-fontobject
-
application/wasm
-
application/xhtml+xml
-
application/xml
-
application/x-font-opentype
-
application/x-font-truetype
-
application/x-font-ttf
-
application/x-httpd-cgi
-
application/x-javascript
-
application/x-mpegurl
-
application/x-opentype
-
application/x-otf
-
application/x-perl
-
application/x-ttf
-
font/eot
-
font/opentype
-
font/otf
-
font/ttf
-
image/svg+xml
-
text/css
-
text/csv
-
text/html
-
text/javascript
-
text/js
-
text/plain
-
text/richtext
-
text/tab-separated-values
-
text/xml
-
text/x-component
-
text/x-java-source
-
text/x-script
-
vnd.apple.mpegurl
Conversione dell'intestazione ETag
Quando l'oggetto non compresso dall'origine include un'ETag
HTTPintestazione valida e forte e CloudFront comprime l'oggetto, converte CloudFront anche il valore dell'ETag
intestazione forte in debole e restituisce il valore debole ETag
al visualizzatore. ETag
Gli spettatori possono memorizzare il ETag
valore debole e utilizzarlo per inviare richieste condizionali con l'intestazione. If-None-Match
HTTP Ciò consente ai visualizzatori e all'origine di trattare le versioni compresse e non compresse di un oggetto come semanticamente equivalenti, il che riduce il trasferimento di dati non necessario. CloudFront
Un valore di intestazione ETag
valido e consolidato inizia con un carattere di virgoletta doppia ("
). Per convertire il ETag
valore forte in uno debole, CloudFront aggiunge i caratteri W/
all'inizio del valore forte. ETag
Quando l'oggetto di origine include un valore di ETag
intestazione debole (un valore che inizia con i caratteriW/
), CloudFront non modifica questo valore e lo restituisce al visualizzatore così come ricevuto dall'origine.
Quando l'oggetto di origine include un valore di ETag
intestazione non valido (il valore non inizia con "
o conW/
), CloudFront rimuove l'ETag
intestazione e restituisce l'oggetto al visualizzatore senza l'intestazione di risposta. ETag
Per ulteriori informazioni, consultate le seguenti pagine nei documenti Web: MDN