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.
Verwalten der Dauer, die Inhalte im Cache bleiben (Ablauf)
Sie können steuern, wie lange Ihre Dateien in einem CloudFront-Cache zwischengespeichert werden, bevor CloudFront eine weitere Anforderung an Ihren Ursprung weiterleitet. Eine Reduzierung der Dauer ermöglicht Ihnen, dynamische Inhalte bereitzustellen. Eine Erhöhung der Dauer bedeutet, dass Ihre Benutzer eine bessere Leistung erhalten, da es wahrscheinlicher ist, dass Ihre Dateien direkt vom Edge-Cache bereitgestellt werden. Eine längere Dauer verringert darüber hinaus die Last auf Ihrem Ursprung.
In der Regel stellt CloudFront eine Datei von einem Edge-Standort bereit, bis die festgelegte Cache-Dauer vergangen ist – d. h. bis die Datei abläuft. Wenn der Edge-Standort nach dem Ablauf eine Anfrage für die Datei erhält, leitet CloudFront die Anfrage an den Ursprung weiter, um sicherzustellen, dass der Cache die neueste Version der Datei enthält. Die Antwort vom Ursprung hängt davon ab, ob die Datei geändert wurde:
-
Wenn der CloudFront-Cache bereits über die neueste Version verfügt, gibt der Ursprung den Statuscode zurüc
304 Not Modified. -
Wenn der CloudFront-Cache nicht über die neueste Version verfügt, gibt der Ursprung den Statuscode
200 OKund die neueste Version der Datei zurück.
Wenn eine Datei an einem Edge-Standort nicht häufig angefordert wird, beseitigt CloudFront die Datei möglicherweise, d. h. entfernt die Datei vor dem Ablaufdatum, um Platz für häufiger angeforderte Dateien zu schaffen.
Wir empfehlen, die Cache-Dauer zu verwalten, indem Sie die Cache-Richtlinie Ihrer Distribution aktualisieren. Wenn Sie keine Cache-Richtlinie verwenden, beträgt die Standard-TTL (Time to Live) 24 Stunden. Sie können jedoch die folgenden Einstellungen aktualisieren, um die Standardeinstellung zu überschreiben:
-
Um die Cache-Dauer für alle Dateien mit demselben Pfadmuster zu ändern, können Sie die CloudFront-Einstellungen für Mindest-TTL, Höchst-TTL und Standard-TTL für ein Cache-Verhalten ändern. Weitere Informationen zu den einzelnen Einstellungen finden Sie unter Mindest-TTL, Höchst-TTL und Standard-TTL.
-
Um die Cache-Dauer für eine einzelne Datei zu ändern, können Sie Ihren Ursprung so konfigurieren, dass ein
Cache-Control-Header mit dermax-age- oders-maxage-Richtlinie oder einExpires-Header zu der Datei hinzugefügt wird. Weitere Informationen finden Sie unter Verwenden von Headern zum Steuern der Cache-Dauer für einzelne Objekte.
Weitere Informationen dazu, wie Mindest-TTL, Standard-TTL und Höchst-TTL mit max-age- und s-maxage-Richtlinien und dem Expires-Header-Feld interagieren, finden Sie unter Angeben der Zeitspanne, die CloudFront Objekte zwischenspeichert.
Darüber hinaus können Sie steuern, wie lange Fehler (z. B. 404 Not Found) in einem CloudFront-Cache zwischengespeichert werden, bevor CloudFront erneut versucht, das angeforderte Objekt durch Weiterleiten einer weiteren Anforderung an Ihren Ursprung abzurufen. Weitere Informationen finden Sie unter Wie CloudFront werden die HTTP-Statuscodes 4xx und 5xx von Ihrem Ursprung verarbeitet.
Themen
Verwenden von Headern zum Steuern der Cache-Dauer für einzelne Objekte
Sie können die Header Cache-Control und Expires verwenden, um zu steuern, wie lange Objekte im Cache zwischengespeichert werden. Die Einstellungen für Mindest-TTL, Standard-TTL und Höchst-TTL wirken sich auch auf die Cache-Dauer aus. Im Folgenden finden Sie einen Überblick darüber, wie sich Header auf die Cache-Dauer auswirken können:
-
Mit der
Cache-Control max-age-Richtlinie können Sie festlegen, wie lange (in Sekunden) ein Objekt im Cache zwischengespeichert werden soll, bevor CloudFront das Objekt erneut vom Ursprungs-Server abruft. Die minimale Ablaufzeit, die CloudFront unterstützt, beträgt 0 Sekunden. Die Höchstwert beträgt 100 Jahre. Geben Sie den Wert im folgenden Format an:Cache-Control: max-age=SekundenBeispielsweise veranlasst die folgende Richtlinie, dass CloudFront das zugehörige Objekt für 3600 Sekunden (1 Stunde) im Cache behält:
Cache-Control: max-age=3600Wenn Sie möchten, dass Objekte für unterschiedliche Zeiträume in CloudFront-Edge-Caches und in Browser-Caches zwischengespeichert werden, können Sie die
Cache-Control max-age- und dieCache-Control s-maxage-Richtlinie zusammen verwenden. Weitere Informationen finden Sie unter Angeben der Zeitspanne, die CloudFront Objekte zwischenspeichert. -
Im
Expires-Header-Feld können Sie ein Ablaufdatum und eine Ablaufzeit festlegen. Verwenden Sie dafür das in RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1 Abschnitt 3.3.1, Full Dateangegebene Format, zum Beispiel: Sat, 27 Jun 2015 23:59:59 GMT
Wir empfehlen, die Cache-Control max-age-Richtlinie anstelle des Expires-Header-Felds zum Steuern der Zwischenspeicherung von Objekten zu verwenden. Wenn Sie sowohl für Cache-Control max-age als auch für Expires Werte festlegen, verwendet CloudFront nur den Wert von Cache-Control max-age.
Weitere Informationen finden Sie unter Angeben der Zeitspanne, die CloudFront Objekte zwischenspeichert.
Sie können nicht die HTTP-Header-Felder Cache-Control oder Pragma in einer GET-Anforderung von einem Viewer verwenden, um zu erzwingen, dass CloudFront für das Objekt zum Ursprungs-Server zurückkehrt. CloudFront ignoriert diese Header-Felder in Viewer-Anforderungen.
Weitere Informationen zu den Header-Feldern Cache-Control und Expires finden Sie in den folgenden Abschnitt in RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1:
Bereitstellung veralteter (abgelaufener) Inhalte
CloudFront unterstützt die Cache-Kontrolldirektiven Stale-While-Revalidate und Stale-If-Error. Mit diesen Direktiven können Sie angeben, wie lange veraltete Inhalte für Viewer verfügbar sind.
Stale-While-Revalidate
Diese Direktive ermöglicht es CloudFront, veraltete Inhalte aus dem Cache bereitzustellen, während gleichzeitig asynchron eine neue Version vom Ursprung abgerufen wird. Dies verbessert die Latenz, da Viewer sofort Antworten von Edge-Standorten erhalten, ohne auf den Abruf im Hintergrund warten zu müssen. Neue Inhalte werden für zukünftige Anforderungen im Hintergrund geladen.
Beispiel: Stale-While-Revalidate
CloudFront geht wie folgt vor, wenn Sie den Cache-Control-Header so einrichten, dass er diese Direktiven verwendet.
Cache-Control: max-age=3600, stale-while-revalidate=600
-
CloudFront speichert eine Antwort für eine Stunde (
max-age=3600). -
Wenn nach diesem Zeitraum eine Anforderung gestellt wird, stellt CloudFront den veralteten Inhalt bereit und sendet gleichzeitig eine Anforderung an den Ursprung, um den zwischengespeicherten Inhalt erneut zu validieren und zu aktualisieren.
-
Während der Inhalt erneut validiert wird, stellt CloudFront den veralteten Inhalt bis zu 10 Minuten lang (
stale-while-revalidate=600) bereit.
Anmerkung
CloudFront stellt den veralteten Inhalt bis zum Wert der Direktive stale-while-revalidate oder dem Wert der CloudFront-Höchst-TTL zur Verfügung, je nachdem, welcher Wert niedriger ist. Nach Ablauf der maximalen TTL-Dauer ist das veraltete Objekt unabhängig vom Wert stale-while-revalidate nicht mehr im Edge-Cache verfügbar.
Stale-If-Error
Diese Direktive ermöglicht es CloudFront, veraltete Inhalte aus dem Cache bereitzustellen, wenn der Ursprung nicht erreichbar ist oder einen Fehlercode zwischen 500 und 600 zurückgibt. Dadurch wird sichergestellt, dass Viewer auch während eines Ausfalls des Ursprungs auf Inhalte zugreifen können.
Beispiel: Stale-If-Error
CloudFront geht wie folgt vor, wenn Sie den Cache-Control-Header so einrichten, dass er diese Direktiven verwendet.
Cache-Control: max-age=3600, stale-if-error=86400
-
CloudFront speichert die Antwort für eine Stunde (
max-age=3600) im Cache. -
Wenn der Ursprung ausgefallen ist oder nach diesem Zeitraum ein Fehler zurückgibt, stellt CloudFront den veralteten Inhalt bis zu 24 Stunden lang bereit (
stale-if-error=86400). -
Wenn Sie benutzerdefinierte Fehlerantworten konfiguriert haben, versucht CloudFront, den veralteten Inhalt bereitzustellen, wenn innerhalb der angegebenen Dauer von
stale-if-errorein Fehler auftritt. Wenn der veraltete Inhalt nicht verfügbar ist, stellt CloudFront die benutzerdefinierten Fehlerantworten bereit, die Sie für den entsprechenden Fehlerstatuscode konfiguriert haben. Weitere Informationen finden Sie unter Erstellen von benutzerdefinierten Fehlerantworten.
Hinweise
-
CloudFront stellt den veralteten Inhalt bis zum Wert der Direktive
stale-if-erroroder dem Wert der CloudFront-Höchst-TTL zur Verfügung, je nachdem, welcher Wert niedriger ist. Nach Ablauf der maximalen TTL-Dauer ist das veraltete Objekt unabhängig vom Wertstale-if-errornicht mehr im Edge-Cache verfügbar. -
Wenn Sie
stale-if-errornicht konfigurieren oder keine benutzerdefinierten Fehlerantworten festlegen, gibt CloudFront das veraltete Objekt zurück oder leitet die Fehlerantwort zurück an den Viewer, je nachdem, ob sich das angeforderte Objekt im Edge-Cache befindet oder nicht. Weitere Informationen finden Sie unter Wie CloudFront werden Fehler verarbeitet, wenn Sie keine benutzerdefinierten Fehlerseiten konfiguriert haben.
Verwenden beider Direktiven
stale-while-revalidate und stale-if-error sind unabhängige Cache-Kontrolldirektiven, die zusammen verwendet werden können, um die Latenz zu reduzieren und einen Puffer hinzuzufügen, damit Ihr Ursprung reagieren oder sich erholen kann.
Beispiel: Verwendung beider Direktiven
CloudFront geht wie folgt vor, wenn Sie den Cache-Control-Header so einrichten, dass er die folgenden Direktiven verwendet.
Cache-Control: max-age=3600, stale-while-revalidate=600, stale-if-error=86400
-
CloudFront speichert die Antwort für eine Stunde (
max-age=3600) im Cache. -
Wenn nach diesem Zeitraum eine Anforderung gestellt wird, stellt CloudFront den veralteten Inhalt bis zu 10 Minuten (
stale-while-revalidate=600) bereit, während der Inhalt erneut überprüft wird. -
Wenn der Ursprungsserver einen Fehler zurückgibt, während CloudFront versucht, den Inhalt erneut zu validieren, stellt CloudFront den veralteten Inhalt bis zu 24 Stunden lang bereit (
stale-if-error=86400).
Caching stellt ein Gleichgewicht zwischen Leistung und Aktualität her. Die Verwendung von Richtlinien wie stale-while-revalidate und stale-if-error kann die Leistung und den Benutzerkomfort verbessern. Achten Sie jedoch darauf, dass die Konfigurationen darauf abgestimmt sind, wie aktuell Ihre Inhalte sein sollen. Richtlinien für veraltete Inhalte eignen sich am besten für Anwendungsfälle, in denen Inhalte aktualisiert werden müssen, die neueste Version jedoch nicht unbedingt erforderlich ist. Wenn sich Ihr Inhalt nicht oder nur selten ändert, kann stale-while-revalidate außerdem zu unnötigen Netzwerkanforderungen führen. Erwägen Sie stattdessen, eine lange Cachedauer festzulegen.
Angeben der Zeitspanne, die CloudFront Objekte zwischenspeichert
Um die Zeit zu steuern, die CloudFront ein Objekt im Cache hält, bevor eine weitere Anfrage an den Ursprung gesendet wird, können Sie:
-
Die minimalen, maximalen und standardmäßigen TTL-Werte im Cache-Verhalten einer CloudFront-Verteilung festlegen. Sie können diese Werte in einer Cache-Richtlinie festlegen, die an das Cache-Verhalten (empfohlen) oder in den Legacy-Cache-Einstellungen angehängt ist.
-
Die
Cache-Control- oderExpires-Header in Antworten vom Ursprung einschließen. Diese Header helfen auch zu bestimmen, wie lange ein Objekt in einem Browser-Cache zwischengespeichert wird, bevor eine weitere Anforderung an CloudFront gesendet wird.
In der folgenden Tabelle wird erläutert, wie die vom Ursprung gesendeten Cache-Control- und Expires-Header mit den TTL-Einstellungen in einem Cache-Verhalten zusammenarbeiten, um das Caching zu beeinflussen.
| Urspung-Header | Mindest-TTL = 0 | Mindest-TTL > 0 |
|---|---|---|
|
Der Ursprung fügt dem Objekt eine |
CloudFront-Caching CloudFront speichert das Objekt für den niedrigen der Werte der Browser-Caching Browser speichern das Objekt für den Wert der |
CloudFront-Caching Die CloudFront-Zwischenspeicherung ist abhängig von den Werten der CloudFront-Mindest- und -Höchst-TTL sowie der
Browser-Caching Browser speichern das Objekt für den Wert der |
|
Der Ursprung fügt dem Objekt keine |
CloudFront-Caching CloudFront speichert das Objekt für den Wert der CloudFront-Standard-TTL zwischen. Browser-Caching Abhängig vom Browser. |
CloudFront-Caching CloudFront speichert das Objekt für den höheren der Werte der CloudFront-Mindest-TTL und -Standard-TTL zwischen. Browser-Caching Abhängig vom Browser. |
|
Der Ursprung fügt dem Objekt |
CloudFront-Caching CloudFront speichert das Objekt für den niedrigen der Werte der Browser-Caching Browser speichern das Objekt für den Wert der |
CloudFront-Caching Die CloudFront-Zwischenspeicherung ist abhängig von den Werten der CloudFront-Mindest- und -Höchst-TTL sowie der
Browser-Caching Browser speichern das Objekt für den Wert der |
|
Der Ursprung fügt dem Objekt einen |
CloudFront-Caching CloudFront speichert das Objekt bis zum Datum im Browser-Caching Browser speichern das Objekt bis zum Datum im |
CloudFront-Caching Die CloudFront-Zwischenspeicherung ist abhängig von den Werten der CloudFront-Mindest- und -Höchst-TTL sowie dem
Browser-Caching Browser speichern das Objekt bis zum Datum und der Uhrzeit im |
|
Der Ursprung fügt Objekten |
CloudFront und Browser berücksichtigen die Header. |
CloudFront-Caching CloudFront speichert Objekte für den Wert der CloudFront-Mindest-TTL zwischen. Siehe die Warnung unter dieser Tabelle. Browser-Caching Browser berücksichtigen die Header. |
Warnung
-
Wenn Ihre Mindest-TTL größer als 0 ist, verwendet CloudFront die Mindest-TTL der Cache-Richtlinie, auch wenn die Direktiven
Cache-Control: no-cache,no-storeund/oderprivatein den Ursprungsheadern vorhanden sind.-
Wenn der Ursprung erreichbar ist, ruft CloudFront das Objekt vom Ursprung ab und gibt es an den Viewer zurück.
-
Wenn der Ursprung nicht erreichbar ist und die minimale oder maximale TTL größer als 0 ist, bedient CloudFront das Objekt, das es zuvor vom Ursprung erhalten hat.
Um dieses Verhalten zu vermeiden, schließen Sie die
Cache-Control: stale-if-error=0-Richtlinie in das vom Ursprung zurückgegebene Objekt ein. Dies führt dazu, dass CloudFront als Reaktion auf zukünftige Anfragen einen Fehler zurückgibt, wenn der Ursprung nicht erreichbar ist, anstatt das Objekt zurückzugeben, das es zuvor vom Ursprung erhalten hat. -
-
CloudFront speichert den HTTP-Statuscode 501 („Nicht implementiert“) von einem S3-Ursprung nicht im Cache, wenn die Ursprungsheader die Direktiven
Cache-Control: no-cache,no-storeund/oderprivateenthalten. Dies ist das Standardverhalten für einen S3-Ursprung, auch wenn Ihre Einstellung für die Mindest-TTL größer als 0 ist.
Weitere Informationen zum Ändern von Einstellungen für Verteilungen mithilfe der CloudFront-Konsole finden Sie unter Eine Verteilung aktualisieren. Weitere Informationen zum Ändern von Einstellungen für Verteilungen mithilfe der CloudFront-API finden Sie unter UpdateDistribution.
Hinzufügen von Headern zu Ihren Objekten mithilfe der Amazon-S3-Konsole
Sie können das Header-Feld Cache-Control oder Expires zu Ihren Amazon-S3-Objekten hinzufügen. Ändern Sie dazu die Metadatenfelder für das Objekt.
So fügen Sie ein Cache-Control- oder Expires-Header-Feld zu Amazon-S3-Objekten hinzu
-
Folgen Sie den Anleitungen im Abschnitt Ersetzen systemdefinierter Metadaten im Thema Bearbeiten von Objektmetadaten in der Amazon-S3-Konsole im Benutzerhandbuch für Amazon S3.
-
Wählen Sie für Schlüssel den Namen des Headers aus, den Sie hinzufügen (Cache-Control oder Expires).
-
Geben Sie für Wert einen Header-Wert ein. Zum Beispiel könnten Sie für einen
Cache-Control-Headermax-age=86400eingeben. FürExpireskönnten Sie ein Ablaufdatum und eine Uhrzeit wieWed, 30 Jun 2021 09:28:00 GMTeingeben. -
Folgen Sie den restlichen Schritten, um Ihre Metadatenänderungen zu speichern.