

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Bereitstellen von komprimierten Dateien
<a name="ServingCompressedFiles"></a>

Wenn angeforderte Objekte komprimiert werden, können Downloads schneller sein, da die Objekte kleiner sind – in einigen Fällen weniger als ein Viertel der Größe des Originals. Schnellere Downloads können zu einem schnelleren Rendern von Webseiten für Ihre Zuschauer führen, insbesondere für JavaScript und CSS-Dateien. Darüber hinaus basieren die Kosten für die CloudFront Datenübertragung auf der Gesamtmenge der bereitgestellten Daten. Die Bereitstellung komprimierter Objekte kann kostengünstiger sein als die Bereitstellung unkomprimierter Objekte.

**Topics**
+ [Konfigurieren Sie CloudFront , um Objekte zu komprimieren](#compressed-content-cloudfront-configuring)
+ [Wie funktioniert die CloudFront Komprimierung](#compressed-content-cloudfront-how-it-works)
+ [Bedingungen für die Komprimierung](#compressed-content-cloudfront-notes)
+ [Dateitypen, die komprimiert werden CloudFront](#compressed-content-cloudfront-file-types)
+ [`ETag`-Header-Konvertierung](#compressed-content-cloudfront-etag-header)

## Konfigurieren Sie CloudFront , um Objekte zu komprimieren
<a name="compressed-content-cloudfront-configuring"></a>

Um das Komprimieren von Objekten CloudFront zu konfigurieren, aktualisieren Sie das Cache-Verhalten, das Sie für die komprimierten Objekte bereitstellen möchten.

**So konfigurieren Sie CloudFront die Komprimierung von Objekten (Konsole)**

1. Melden Sie sich bei der [CloudFront-Konsole](https://console.aws.amazon.com/cloudfront/v4/home) an.

1. Wählen Sie Ihre Distribution und dann das zu bearbeitende **Verhalten** aus.

1. Setzen Sie **Objekte automatisch komprimieren** auf **Ja**. 

1. Verwenden Sie eine [Cache-Richtlinie](controlling-the-cache-key.md), um Cache-Einstellungen anzugeben, und aktivieren Sie die Komprimierungsformate **Gzip** und **Brotli**.

**Hinweise**  
Für die Brotli-Komprimierung müssen Sie [Cache-Richtlinien](controlling-the-cache-key.md) verwenden. Brotli unterstützt keine Legacy-Cache-Einstellungen.
Um die Komprimierung mithilfe [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html)der [CloudFront](https://docs.aws.amazon.com/cloudfront/latest/APIReference/Welcome.html)API zu aktivieren, setzen Sie die `EnableAcceptEncodingBrotli` Parameter `Compress``EnableAcceptEncodingGzip`, auf`true`.

Informationen zur CloudFront Komprimierung von Objekten finden Sie im folgenden Abschnitt.

## Wie funktioniert die CloudFront Komprimierung
<a name="compressed-content-cloudfront-how-it-works"></a>

1. Ein Viewer fordert ein Objekt an. Der Viewer fügt den HTTP-Header `Accept-Encoding` in die Anforderung ein. Die Header-Werte fügen `gzip`, `br` oder beides ein. Dadurch wird angezeigt, dass der Viewer komprimierte Objekte unterstützt. Wenn der Viewer sowohl Gzip als auch Brotli unterstützt, CloudFront verwendet er Brotli.
**Anmerkung**  
Die Webbrowser Chrome und Firefox unterstützen die Brotli-Komprimierung nur, wenn die Anforderung über HTTPS gesendet wird. Sie unterstützen Brotli für HTTP-Anforderungen nicht.

1. Sucht am Edge-Standort im Cache CloudFront nach einer komprimierten Kopie des angeforderten Objekts.

1. Führt je nachdem, ob sich das komprimierte Objekt im Cache befindet oder CloudFront nicht, eine der folgenden Aktionen aus:
   + Wenn sich das komprimierte Objekt bereits im Cache befindet, wird das Objekt an den Viewer CloudFront gesendet und die verbleibenden Schritte übersprungen.
   + Wenn sich das komprimierte Objekt nicht im Cache befindet, CloudFront leitet die Anfrage an den Ursprung weiter.
**Anmerkung**  
Wenn sich bereits eine unkomprimierte Kopie des Objekts im Cache befindet, wird sie CloudFront möglicherweise an den Betrachter gesendet, ohne die Anfrage an den Ursprung weiterzuleiten. Dies kann beispielsweise passieren, wenn die Komprimierung CloudFront [zuvor übersprungen wurde](#compression-skipped). In diesem Fall wird das unkomprimierte Objekt CloudFront zwischengespeichert und solange bereitgestellt, bis das Objekt abläuft, entfernt oder ungültig gemacht wird.

1. Wenn der Ursprung ein komprimiertes Objekt zurückgibt (wie durch den `Content-Encoding` Header in der HTTP-Antwort angegeben), CloudFront sendet er das komprimierte Objekt an den Viewer, fügt es dem Cache hinzu und überspringt die verbleibenden Schritte. CloudFront komprimiert das Objekt nicht erneut.

1. Wenn der Ursprung ein unkomprimiertes Objekt CloudFront ohne den `Content-Encoding` Header in der HTTP-Antwort zurückgibt, CloudFront wird dann bestimmt, ob das Objekt komprimiert werden kann. Weitere Informationen finden Sie unter [Bedingungen für die Komprimierung](#compressed-content-cloudfront-notes).

1. Wenn das Objekt komprimiert werden kann, wird es CloudFront komprimiert, an den Viewer gesendet und anschließend dem Cache hinzugefügt. 

1. Wenn es nachfolgende Viewer-Anfragen für dasselbe Objekt CloudFront gibt, wird die erste zwischengespeicherte Version zurückgegeben. Wenn ein Viewer beispielsweise ein bestimmtes zwischengespeichertes Objekt anfordert, das Gzip-Komprimierung verwendet, und der Viewer das Gzip-Format *akzeptiert*, geben nachfolgende Anforderungen an dasselbe Objekt immer die Gzip-Version zurück, auch wenn der Viewer sowohl Brotli als auch Gzip akzeptiert.

Einige benutzerdefinierte Ursprünge können auch Objekte komprimieren. Ihr Origin ist möglicherweise in der Lage, Objekte zu komprimieren, die CloudFront nicht komprimiert werden. Weitere Informationen finden Sie unter [Dateitypen, die komprimiert werden CloudFront](#compressed-content-cloudfront-file-types).

## Bedingungen für die Komprimierung
<a name="compressed-content-cloudfront-notes"></a>

Die folgende Liste enthält weitere Informationen zu Szenarien, in denen Objekte CloudFront nicht komprimiert werden.

**Anforderung verwendet HTTP 1.0**  
Wenn eine Anfrage HTTP 1.0 CloudFront verwendet, CloudFront wird der `Accept-Encoding` Header entfernt und das Objekt in der Antwort nicht komprimiert.

**`Accept-Encoding`-Header der Anforderung**  
Wenn der `Accept-Encoding` Header in der Viewer-Anfrage fehlt oder wenn er keinen Wert enthält `gzip` oder `br` keinen Wert enthält, CloudFront wird das Objekt in der Antwort nicht komprimiert. Wenn der `Accept-Encoding` Header zusätzliche Werte enthält`deflate`, z. B. CloudFront werden diese entfernt, bevor die Anfrage an den Ursprung weitergeleitet wird.  
Wenn [für die Komprimierung von Objekten konfiguriert CloudFront ](#compressed-content-cloudfront-configuring) ist, nimmt er den `Accept-Encoding` Header automatisch in den Cache-Schlüssel und in Ursprungsanfragen auf.

**Der Inhalt wird bereits zwischengespeichert, wenn Sie das Komprimieren von CloudFront Objekten konfigurieren**  
CloudFront komprimiert Objekte, wenn sie vom Ursprung abgerufen werden. Wenn Sie CloudFront das Komprimieren von Objekten konfigurieren, werden Objekte, die bereits an Kantenpositionen zwischengespeichert sind, CloudFront nicht komprimiert. Wenn ein zwischengespeichertes Objekt an einem Edge-Standort abläuft und eine weitere Anforderung für das Objekt an Ihren Ursprung CloudFront weiterleitet, wird das Objekt außerdem CloudFront nicht komprimiert, wenn Ihr Ursprung den HTTP-Statuscode 304 zurückgibt. Das bedeutet, dass Edge-Standort bereits über die neueste Version des Objekts verfügt. Wenn Sie Objekte komprimieren CloudFront möchten, die bereits an Edge-Standorten zwischengespeichert sind, müssen Sie diese Objekte für ungültig erklären. Weitere Informationen finden Sie unter [Aufheben der Gültigkeit von Dateien zum Entfernen von Inhalten](Invalidation.md).

**Ursprung ist bereits für die Kompression von Objekten konfiguriert**  
Wenn Sie CloudFront die Konfiguration so konfigurieren, dass Objekte komprimiert werden und der Ursprung auch Objekte komprimiert, sollte der Ursprung einen Header enthalten. `Content-Encoding` Dieser Header weist darauf hin CloudFront , dass das Objekt bereits komprimiert ist. Wenn eine Antwort von einem Ursprung den `Content-Encoding` Header enthält, wird das Objekt CloudFront nicht komprimiert, unabhängig vom Wert des Headers. CloudFrontsendet die Antwort an den Betrachter und speichert das Objekt an der Edge-Position im Cache.

**Dateitypen, die CloudFront komprimiert werden**  
Eine vollständige Liste finden Sie hier: [Dateitypen, die komprimiert werden CloudFront](#compressed-content-cloudfront-file-types).

**Größe der Objekte, die CloudFront komprimiert werden**  
CloudFront komprimiert Objekte mit einer Größe zwischen 1.000 Byte und 10.000.000 Byte.

**`Content-Length`-Header**  
Der Ursprung muss in der Antwort einen `Content-Length` Header enthalten, CloudFront anhand dessen bestimmt wird, ob die Größe des Objekts in dem Bereich liegt, der komprimiert wird. CloudFront Wenn der `Content-Length` Header fehlt, einen ungültigen Wert enthält oder einen Wert außerhalb des Größenbereichs für die CloudFront Komprimierung enthält, wird CloudFront das Objekt nicht komprimiert. Weitere Informationen zur Verarbeitung großer Objekte, die den Größenbereich überschreiten können, finden Sie unter[Wie CloudFront werden Teilanfragen für ein Objekt (Bereich GETs) verarbeitet](RangeGETs.md). CloudFront 

**Den HTTP-Statuscode der Antwort.**  
CloudFront komprimiert Objekte nur, wenn der HTTP-Statuscode der Antwort `200``403`, oder `404` lautet.

**Antwort hat keinen Körper**  
Wenn die HTTP-Antwort vom Ursprung keinen Hauptteil hat, gibt es nichts, was komprimiert werden CloudFront könnte.

**`ETag`-Header**  
CloudFront ändert manchmal den `ETag` Header in der HTTP-Antwort, wenn Objekte komprimiert werden. Weitere Informationen finden Sie unter [`ETag`-Header-Konvertierung](#compressed-content-cloudfront-etag-header).

**CloudFront überspringt die Komprimierung**  
CloudFront komprimiert Objekte nach bestem Wissen. In seltenen Fällen CloudFront überspringt die Komprimierung eines Objekts bei hoher CloudFront Verkehrsbelastung. CloudFront trifft diese Entscheidung auf der Grundlage einer Vielzahl von Faktoren, einschließlich der Hostkapazität. Wenn die Komprimierung für ein Objekt CloudFront übersprungen wird, wird das unkomprimierte Objekt zwischengespeichert und Benutzern weiterhin zur Verfügung gestellt, bis das Objekt abläuft, entfernt oder ungültig gemacht wird.

## Dateitypen, die komprimiert werden CloudFront
<a name="compressed-content-cloudfront-file-types"></a>

Wenn Sie CloudFront das Komprimieren von Objekten konfigurieren, werden CloudFront nur Objekte komprimiert, die einen der folgenden Werte im `Content-Type` Antwortheader haben:
+ `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`

## `ETag`-Header-Konvertierung
<a name="compressed-content-cloudfront-etag-header"></a>

Wenn das unkomprimierte Objekt aus dem Ursprung einen gültigen, starken `ETag` HTTP-Header enthält und das Objekt CloudFront komprimiert, wandelt es CloudFront auch den starken `ETag` Header-Wert in einen schwachen um und gibt den schwachen `ETag` `ETag` Wert an den Viewer zurück. Viewer können den schwachen `ETag`-Wert speichern und ihn verwenden, um bedingte Anforderungen mit dem HTTP-Header `If-None-Match` zu senden. Auf diese Weise können Betrachter und der Ursprung die komprimierten und unkomprimierten Versionen eines Objekts als semantisch gleichwertig behandeln, wodurch unnötige Datenübertragungen vermieden werden. CloudFront

Ein gültiger, starker `ETag`-Headerwert beginnt und endet mit einem doppelten Anführungszeichen (`"`). Um den starken `ETag`-Wert in einen schwachen Wert zu konvertieren, fügt CloudFront die Zeichen `W/` am Anfang des starken `ETag`-Werts hinzu.

Wenn das Objekt aus dem Ursprung einen schwachen `ETag` Header-Wert (einen Wert, der mit den Zeichen beginnt`W/`) enthält, CloudFront wird dieser Wert nicht geändert und er wird so an den Betrachter zurückgegeben, wie er vom Ursprung empfangen wurde.

Wenn das Objekt aus dem Ursprung einen ungültigen `ETag` Header-Wert enthält (der Wert beginnt nicht mit `"` oder mit`W/`), CloudFront wird der `ETag` Header entfernt und das Objekt ohne den `ETag` Antwort-Header an den Viewer zurückgegeben.

Weitere Informationen finden Sie auf den folgenden Seiten in den MDN-Webdokumenten:
+ [Direktiven](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag#Directives) (`ETag`-HTTP-Header)
+ [Schwache Validierung](https://developer.mozilla.org/en-US/docs/Web/HTTP/Conditional_requests#Weak_validation) (bedingte HTTP-Anforderungen)
+ [If-None-Match-HTTP-Header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match)