

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

# Distribuzione di file compressi
<a name="ServingCompressedFiles"></a>

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. La distribuzione di oggetti compressi può essere meno costosa rispetto alla distribuzione di oggetti non compressi.

**Topics**
+ [

## Configura CloudFront per comprimere gli oggetti
](#compressed-content-cloudfront-configuring)
+ [

## Come funziona CloudFront la compressione
](#compressed-content-cloudfront-how-it-works)
+ [

## Condizioni per la compressione
](#compressed-content-cloudfront-notes)
+ [

## Tipi CloudFront di file che si comprimono
](#compressed-content-cloudfront-file-types)
+ [

## Conversione dell'intestazione `ETag`
](#compressed-content-cloudfront-etag-header)

## Configura CloudFront per comprimere gli oggetti
<a name="compressed-content-cloudfront-configuring"></a>

 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)**

1. Accedi alla [console CloudFront](https://console.aws.amazon.com/cloudfront/v4/home).

1. Scegli la distribuzione, quindi seleziona il **comportamento** da modificare.

1. Per l’impostazione **Comprimi oggetti automaticamente**, scegli **Sì**. 

1. Usa una [policy della cache](controlling-the-cache-key.md) per specificare le impostazioni di caching e abilita entrambi i formati di compressione **Gzip** e **Brotli**.

**Note**  
Per utilizzare la compressione Brotli sono richieste [policy della cache](controlling-the-cache-key.md). Brotli non supporta le impostazioni cache legacy.
Per abilitare la compressione utilizzando [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html)o l'[CloudFront](https://docs.aws.amazon.com/cloudfront/latest/APIReference/Welcome.html)API, imposta i `EnableAcceptEncodingBrotli` parametri`Compress`,`EnableAcceptEncodingGzip`, su`true`.

Per informazioni su come CloudFront comprime gli oggetti, consultate la sezione seguente.

## Come funziona CloudFront la compressione
<a name="compressed-content-cloudfront-how-it-works"></a>

1. Un visualizzatore richiede un oggetto. Il visualizzatore include l'intestazione `Accept-Encoding` HTTP nella richiesta e il valore di intestazione include `gzip`, `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 utilizzando HTTPS. Non supportano Brotli con richieste HTTP.

1. Nella posizione periferica, CloudFront verifica la presenza di una copia compressa dell'oggetto richiesto nella cache.

1. 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.](#compression-skipped) 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.

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

1. 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 [Condizioni per la compressione](#compressed-content-cloudfront-notes).

1. Se l'oggetto può essere compresso, lo CloudFront comprime, lo invia al visualizzatore e quindi lo aggiunge alla cache. 

1. 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 memorizzato nella cache che utilizza la compressione Gzip e *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 CloudFront non vengono compressi. Per ulteriori informazioni, consulta [Tipi CloudFront di file che si comprimono](#compressed-content-cloudfront-file-types).

## Condizioni per la compressione
<a name="compressed-content-cloudfront-notes"></a>

L'elenco seguente fornisce ulteriori informazioni sugli scenari in cui CloudFront non 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 contiene `gzip` o `br` non è un valore, CloudFront non comprime l'oggetto nella risposta. Se l'`Accept-Encoding`intestazione include valori aggiuntivi, ad esempio`deflate`, li CloudFront rimuove prima di inoltrare la richiesta all'origine.  
Quando CloudFront è [configurato per comprimere gli oggetti](#compressed-content-cloudfront-configuring), 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 la posizione edge dispone già della versione più recente dell’oggetto. Se desiderate CloudFront comprimere oggetti che sono già memorizzati nella cache in posizioni periferiche, dovete invalidare tali oggetti. Per ulteriori informazioni, consulta [Invalidare i file per rimuovere il contenuto](Invalidation.md).

**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 CloudFront di file che si comprimono](#compressed-content-cloudfront-file-types).

**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 (intervallo GETs)](RangeGETs.md)

**Il codice di stato HTTP per la risposta**  
CloudFront comprime gli oggetti solo quando il codice di stato HTTP della risposta è `200``403`, o`404`.

**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`](#compressed-content-cloudfront-etag-header).

**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 CloudFront di file che si comprimono
<a name="compressed-content-cloudfront-file-types"></a>

Se configurate CloudFront per comprimere oggetti, comprime CloudFront solo gli oggetti che hanno uno dei seguenti valori nell'intestazione della `Content-Type` risposta:
+ `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`
<a name="compressed-content-cloudfront-etag-header"></a>

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 intestazione `ETag` valido e consolidato inizia e termina con un carattere di virgoletta doppia (`"`). 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 caratteri`W/`), 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 con`W/`), 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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag#Directives) (intestazione`ETag` HTTP)
+ [Convalida debole](https://developer.mozilla.org/en-US/docs/Web/HTTP/Conditional_requests#Weak_validation) (richieste condizionali HTTP)
+ [Intestazione HTTP If-None-Match](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match)