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 bleiben, bevor eine weitere Anfrage an Ihren Ursprung CloudFront weitergeleitet wird. Indem Sie die Dauer reduzieren, können Sie dynamische Inhalte bereitstellen. 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.
Stellt in der CloudFront Regel eine Datei von einem Edge-Standort aus bereit, bis die von Ihnen angegebene Cachedauer abgelaufen ist, d. h. bis die Datei abläuft. Wenn der Edge-Standort nach Ablauf das nächste Mal eine Anforderung für die Datei erhält, CloudFront leitet er die Anfrage an den Ursprung weiter, um zu überprüfen, ob 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 einen Statuscode
304 Not Modifiedzurück. -
Wenn der CloudFront Cache nicht über die neueste Version verfügt, gibt der Ursprung einen Statuscode
200 OKund die neueste Version der Datei zurück.
Wenn eine Datei an einem Edge-Speicherort nicht häufig angefordert wird, löschen Sie die Datei CloudFront möglicherweise — entfernen Sie die Datei vor ihrem Ablaufdatum —, um Platz für Dateien zu schaffen, die in jüngerer Zeit angefordert wurden.
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 Cachedauer für alle Dateien zu ändern, die demselben Pfadmuster entsprechen, können Sie die CloudFront Einstellungen für Minimale TTL, Maximale TTL und Standard-TTL für ein Cacheverhalten ä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 Geben Sie an, wie lange Objekte zwischengespeichert werden CloudFront.
Sie können auch steuern, wie lange Fehler (z. B.404 Not Found) in einem CloudFront Cache verbleiben, bevor erneut CloudFront versucht wird, das angeforderte Objekt abzurufen, indem Sie eine weitere Anfrage an Ihren Ursprung weiterleiten. Weitere Informationen finden Sie unter Wie CloudFront verarbeitet die HTTP 4xx- und 5xx-Statuscodes von Ihrem Ursprung.
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-ageDirektive können Sie angeben, wie lange (in Sekunden) ein Objekt im Cache verbleiben soll, bevor CloudFront es erneut vom Originalserver abgerufen wird. Die unterstützte Mindestablaufzeit CloudFront beträgt 0 Sekunden. Die Höchstwert beträgt 100 Jahre. Geben Sie den Wert im folgenden Format an:Cache-Control: max-age=secondsDie folgende Direktive weist beispielsweise CloudFront an, dass das zugehörige Objekt 3600 Sekunden (eine Stunde) lang im Cache belassen werden soll:
Cache-Control: max-age=3600Wenn Sie möchten, dass Objekte für eine andere Dauer in CloudFront Edge-Caches verbleiben als in Browser-Caches, können Sie die Direktiven
Cache-Control max-ageundCache-Control s-maxagezusammen verwenden. Weitere Informationen finden Sie unter Geben Sie an, wie lange Objekte zwischengespeichert werden CloudFront. -
Mit dem
ExpiresHeader-Feld können Sie ein Ablaufdatum und eine Ablaufzeit in dem in RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1 Abschnitt 3.3.1, Vollständiges Datum, angegebenen Format angeben, 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 Geben Sie an, wie lange Objekte zwischengespeichert werden CloudFront.
Sie können die HTTP Cache-Control - oder Pragma Header-Felder in einer GET Anfrage eines Viewers nicht verwenden, um die Rückkehr CloudFront zum Originalserver für das Objekt zu erzwingen. CloudFront ignoriert diese Header-Felder in Viewer-Anfragen.
Weitere Informationen zu den Expires Header-Feldern Cache-Control und finden Sie in den folgenden Abschnitten in RFC 2616, Hypertext Transfer Protocol --: HTTP/1.1
Bereitstellung veralteter (abgelaufener) Inhalte
CloudFront unterstützt die Steueranweisungen Stale-While-Revalidate und Stale-If-Error Cache. Mit diesen Direktiven können Sie angeben, wie lange veraltete Inhalte für Viewer verfügbar sind.
Stale-While-Revalidate
Diese Direktive CloudFront ermöglicht es, veraltete Inhalte aus dem Cache bereitzustellen, während CloudFront 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 Beispiel: Stale-While-Revalidate
CloudFront führt Folgendes aus, wenn Sie den Cache-Control Header so einstellen, 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) im Cache. -
Wenn eine Anfrage nach Ablauf dieser Dauer gestellt wird, wird der CloudFront veraltete Inhalt bereitgestellt und gleichzeitig eine Anfrage an den Ursprung gesendet, um den zwischengespeicherten Inhalt erneut zu validieren und zu aktualisieren.
-
Während der Überprüfung des Inhalts wird der veraltete Inhalt bis CloudFront zu 10 Minuten lang bereitgestellt ().
stale-while-revalidate=600
Anmerkung
CloudFront stellt den veralteten Inhalt bis zum Wert der stale-while-revalidate Direktive oder bis zum Wert der CloudFront maximalen TTL bereit, 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 CloudFront ermöglicht es, 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 Zuschauer auch während eines Origin-Ausfalls auf Inhalte zugreifen können.
Beispiel Beispiel: Stale-If-Error
CloudFront führt Folgendes aus, wenn Sie den Cache-Control Header so einstellen, dass er diese Anweisungen 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 nach Ablauf dieser Zeit ausgefallen ist oder einen Fehler zurückgibtCloudFront , wird der veraltete Inhalt bis zu 24 Stunden lang bereitgestellt ()
stale-if-error=86400 -
Wenn Sie benutzerdefinierte Fehlerantworten konfiguriert haben, CloudFront wird versucht, den veralteten Inhalt bereitzustellen, wenn innerhalb der angegebenen
stale-if-errorDauer ein Fehler auftritt. Wenn der veraltete Inhalt nicht verfügbar ist, CloudFront werden die benutzerdefinierten Fehlerantworten bereitgestellt, 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
stale-if-errorDirektive oder dem Wert der CloudFront maximalen TTL bereit, 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 keine Fehlerantworten konfigurieren
stale-if-erroroder anpassen, CloudFront gibt das veraltete Objekt zurück oder leitet die Fehlerantwort zurück an den Viewer weiter, je nachdem, ob sich das angeforderte Objekt im Edge-Cache befindet oder nicht. Weitere Informationen finden Sie unter Wie CloudFront verarbeitet Fehler, 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 Beispiel: Verwendung beider Direktiven
CloudFront führt Folgendes aus, wenn Sie den Cache-Control Header so einstellen, dass er die folgenden Anweisungen 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 eine Anfrage nach Ablauf dieser Dauer gestellt wird, wird CloudFront der veraltete Inhalt für bis zu 10 Minuten (
stale-while-revalidate=600) bereitgestellt, während der Inhalt erneut überprüft wird. -
Wenn der Originalserver beim CloudFront Versuch, den Inhalt erneut zu validieren, einen Fehler zurückgibt, CloudFront wird der veraltete Inhalt bis zu 24 Stunden lang () bereitgestellt.
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.
Geben Sie an, wie lange Objekte zwischengespeichert werden CloudFront
Um zu steuern, wie lange ein Objekt im Cache CloudFront verbleibt, bevor eine weitere Anfrage an den Ursprung gesendet wird, können Sie:
-
Legen Sie die minimalen, maximalen und standardmäßigen TTL-Werte für das Cache-Verhalten einer CloudFront Distribution fest. 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 dabei zu bestimmen, wie lange ein Browser ein Objekt im Browser-Cache aufbewahrt, bevor eine weitere Anfrage an gesendet wird. CloudFront
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 Zwischenspeichern CloudFront speichert das Objekt für den niedrigeren Wert der Browser-Caching Browser speichern das Objekt für den Wert der |
CloudFront zwischenspeichern CloudFront Das Caching hängt von den Werten der CloudFront minimalen TTL und der maximalen TTL und der Direktive ab:
Browser-Caching Browser speichern das Objekt für den Wert der |
|
Der Ursprung fügt dem Objekt keine |
CloudFront zwischenspeichern CloudFront speichert das Objekt für den Wert der CloudFront Standard-TTL im Cache. Browser-Caching Abhängig vom Browser. |
CloudFront zwischenspeichern CloudFront speichert das Objekt im Cache, je nachdem, welcher Wert der CloudFront TTL-Mindestwerte oder der Standard-TTL ist. Browser-Caching Abhängig vom Browser. |
|
Der Ursprung fügt dem Objekt |
CloudFront zwischenspeichern CloudFront speichert das Objekt für den niedrigeren Wert der Browser-Caching Browser speichern das Objekt für den Wert der |
CloudFront zwischenspeichern CloudFront Das Caching hängt von den Werten der CloudFront minimalen TTL und der maximalen TTL und der Direktive ab:
Browser-Caching Browser speichern das Objekt für den Wert der |
|
Der Ursprung fügt dem Objekt einen |
CloudFront zwischenspeichern CloudFront speichert das Objekt bis zum Datum im Browser-Caching Browser speichern das Objekt bis zum Datum im |
CloudFront Zwischenspeichern CloudFront Das Caching hängt von den Werten der CloudFront minimalen TTL und der maximalen TTL sowie vom Header ab:
Browser-Caching Browser speichern das Objekt bis zum Datum und der Uhrzeit im |
|
Origin fügt dem Objekt |
CloudFront und Browser respektieren die Header. |
CloudFront Zwischenspeichern CloudFront speichert das Objekt für den Wert des CloudFront TTL-Mindestwerts im Cache. Siehe die Warnung unter dieser Tabelle. Browser-Caching Browser berücksichtigen die Header. |
Warnung
-
Wenn Ihre Mindest-TTL größer als 0 ist, wird die Mindest-TTL der Cache-Richtlinie CloudFront verwendet, auch wenn die and/or
privateDirektiven,, in denCache-Control: no-cacheno-storeQuell-Headern vorhanden sind.-
Wenn der Ursprung erreichbar ist, CloudFront ruft das Objekt vom Ursprung ab und gibt es an den Viewer zurück.
-
Wenn der Ursprung nicht erreichbar ist und der minimale oder maximale TTL-Wert größer als 0 ist, CloudFront wird das Objekt bereitgestellt, 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 CloudFront dazu, dass als Antwort auf zukünftige Anfragen ein Fehler zurückgegeben wird, wenn der Ursprung nicht erreichbar ist, anstatt das Objekt zurückzugeben, das es zuvor vom Ursprung erhalten hat. -
-
CloudFront speichert den HTTP 501-Statuscode (nicht implementiert) von einem S3-Ursprung nicht im Cache, wenn die Quell-Header die Direktiven
Cache-Control: no-cache,no-store, and/orprivateenthalten. Dies ist das Standardverhalten für einen S3-Ursprung, auch wenn Ihre Einstellung für die Mindest-TTL größer als 0 ist.
Hinweise zum Ändern der Einstellungen für Distributionen mithilfe der CloudFront Konsole finden Sie unter. Eine Verteilung aktualisieren Informationen zum Ändern der Einstellungen für Distributionen 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 Amazon Cache-Control S3-Objekten ein Header-Feld oder Expires 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 Key den Namen des Headers, den Sie hinzufügen (Cache-Controloder 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.