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
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. I download più rapidi possono portare a un rendering più rapido delle pagine Web per gli utenti, in particolare per JavaScript i file CSS. Inoltre, 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.
Argomenti
Configura per comprimere CloudFront gli oggetti
CloudFront Per configurare la compressione degli oggetti, aggiorna il comportamento della cache in base al quale desideri utilizzare gli oggetti compressi.
Per configurare CloudFront la compressione degli oggetti (console)
-
Accedi alla console CloudFront
. -
Scegli la tua distribuzione e poi scegli il comportamento da modificare.
-
Per l'impostazione Comprimi automaticamente gli oggetti, scegliete Sì.
-
Utilizzate una politica di cache per specificare le impostazioni di memorizzazione nella cache e abilitate i formati di compressione Gzip e Brotli.
-
Imposta le impostazioni TTL nella politica della cache su un valore maggiore di zero. Se imposti il Minimum TTL (TTL minimo) valore su zero, il contenuto compresso CloudFront non verrà memorizzato nella cache.
Note
-
È necessario utilizzare le politiche di cache per utilizzare la compressione Brotli. Brotli non supporta le impostazioni della cache legacy.
-
Per abilitare la compressione utilizzando AWS CloudFormationo l'CloudFrontAPI, imposta i
EnableAcceptEncodingBrotli
parametriCompress
,EnableAcceptEncodingGzip
, su.true
Per informazioni su come CloudFront comprime gli oggetti, consultate la sezione seguente.
Come funziona CloudFront la compressione
-
Un visualizzatore richiede un oggetto. Il visualizzatore include l'intestazione
Accept-Encoding
HTTP nella richiesta e il valore di intestazione includegzip
,br
o entrambi. Questo indica che il visualizzatore supporta gli oggetti compressi. Quando il visualizzatore supporta sia Gzip che Brotli, CloudFront usa Brotli.Nota
I browser Web Chrome e Firefox supportano la compressione Brotli solo quando la richiesta viene inviata tramite HTTPS. Non supportano Brotli con le richieste HTTP.
-
Nella posizione periferica, CloudFront verifica la presenza di una copia compressa dell'oggetto richiesto nella cache.
-
A seconda che l'oggetto compresso sia o meno nella cache, CloudFront esegue una delle seguenti operazioni:
-
Se l'oggetto compresso è già presente nella cache, CloudFront invia l'oggetto 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 dall'
Content-Encoding
intestazione nella risposta HTTP), CloudFront invia l'oggetto compresso al visualizzatore, lo aggiunge alla cache e salta i passaggi rimanenti. CloudFront non comprime nuovamente l'oggetto. -
Se l'origine restituisce un oggetto non compresso CloudFront senza l'
Content-Encoding
intestazione nella risposta HTTP, CloudFront determina se l'oggetto può essere compresso. Per ulteriori informazioni, consulta Quando comprime gli oggetti CloudFront . -
Se l'oggetto può essere compresso, lo CloudFront comprime, lo invia al visualizzatore e quindi lo aggiunge alla cache.
-
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 uno specifico oggetto memorizzato nella cache che utilizza la compressione Gzip 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.
Alcune origini personalizzate possono anche comprimere gli oggetti. La tua origine potrebbe essere in grado di comprimere oggetti che non vengono compressi. CloudFront Per ulteriori informazioni, consulta Tipi di file che CloudFront comprime.
Quando comprime gli oggetti CloudFront
L'elenco seguente fornisce ulteriori informazioni su quando CloudFront comprime gli oggetti.
- La richiesta utilizza HTTP 1.0
-
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. - Il contenuto viene già memorizzato nella cache quando si configura CloudFront la compressione degli 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 stato HTTP 304. Ciò significa che l'edge location dispone già della versione più recente dell'oggetto. Se si desidera CloudFront comprimere oggetti che sono già memorizzati nella cache nelle posizioni dei bordi, è necessario 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 gli oggetti e l'origine comprime anche gli oggetti, l'origine deve includere un'intestazione.
Content-Encoding
Questa intestazione indica CloudFront che l'oggetto è già compresso. Quando una risposta 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, consulta 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 al di fuori dell'intervallo di dimensioni che CloudFront comprime, CloudFront non comprime l'oggetto. Per ulteriori informazioni su come CloudFront elabora oggetti di grandi dimensioni che possono superare l'intervallo di dimensioni, vedere. Come CloudFront elabora le richieste parziali per un oggetto (intervalloGETs) - Il codice di stato HTTP per la risposta
-
CloudFront comprime gli oggetti solo quando il codice di stato HTTP della risposta è
200
403
, o404
. - La risposta non ha corpo
-
Quando la risposta HTTP dall'origine non ha un corpo, non c'è nulla CloudFront da comprimere.
ETag
Intestazione-
CloudFront a volte modifica l'
ETag
intestazione nella risposta HTTP 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 di un oggetto in caso di elevato carico di CloudFront traffico. 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'intestazione ETag
HTTP valida e forte e CloudFront comprime l'oggetto, converte CloudFront anche il valore di ETag
intestazione forte in debole e restituisce il valore debole ETag
al visualizzatore. ETag
Gli spettatori possono memorizzare il valore ETag
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 ETag
intestazione valido e sicuro inizia e termina con una doppia virgoletta (). "
Per convertire il valore ETag
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, consulta le pagine seguenti nei documenti web MDN:
-
Direttive
(intestazione ETag
HTTP) -
Convalida debole
(richieste condizionali HTTP)