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.
Sie können kontrollieren, wie lange Ihre Dateien in einem CloudFront Cache bleiben, bevor Sie CloudFront eine weitere Anfrage an Ihren Ursprung weiterleiten. 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 CloudFront wird eine Datei von einem Edge-Standort aus bereitgestellt, bis die von Ihnen angegebene Cache-Dauer abgelaufen ist, d. h. bis die Datei abläuft. Wenn der Edge-Standort nach Ablauf das nächste Mal eine Anfrage 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 Modified
zurück. -
Wenn der CloudFront Cache nicht über die neueste Version verfügt, gibt der Ursprung einen Statuscode
200 OK
und die neueste Version der Datei zurück.
Wenn eine Datei an einem Edge-Speicherort nicht häufig angefordert wird, kann es CloudFront sein, dass die Datei entfernt wird, d. h. sie wird vor dem Ablaufdatum entfernt, 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 die Verwendung einer Cache-Richtlinie deaktivieren, 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. Informationen zu den einzelnen Einstellungen finden Sie unter Mindest-TTL, Höchst-TTL und Standard-TTL in Referenz zu den Verteilungseinstellungen.
-
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 Sie Header, um die Cache-Dauer für einzelne Objekte zu steuern.
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 werden die HTTP-Statuscodes 4xx und 5xx von Ihrem Ursprung verarbeitet.
Themen
Verwenden Sie Header, um die Cache-Dauer für einzelne Objekte zu steuern
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
Direktive können Sie angeben, wie lange (in Sekunden) ein Objekt im Cache verbleiben soll, bevor CloudFront es erneut vom Ursprungsserver 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=
seconds
Die folgende Direktive weist beispielsweise darauf CloudFront hin, dass das zugehörige Objekt 3600 Sekunden (eine Stunde) im Cache aufbewahrt werden soll:
Cache-Control: max-age=3600
Wenn 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-age
undCache-Control s-maxage
zusammen verwenden. Weitere Informationen finden Sie unter Geben Sie an, wie lange Objekte zwischengespeichert werden CloudFront . -
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 Geben Sie an, wie lange Objekte zwischengespeichert werden CloudFront .
Sie können die HTTP Cache-Control
- oder Pragma
Header-Felder nicht in einer GET
Anfrage eines Betrachters verwenden, um CloudFront zu erzwingen, für das Objekt zum Ursprungsserver zurückzukehren. CloudFront ignoriert diese Header-Felder in Viewer-Anfragen.
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:
Stellt veraltete (abgelaufene) Inhalte bereit
CloudFront unterstützt die Steueranweisungen Stale-While-Revalidate
und die Stale-If-Error
Cache-Steueranweisungen. Sie können diese Direktiven verwenden, um anzugeben, wie lange veraltete Inhalte für Zuschauer verfügbar sind.
Stale-While-Revalidate
Diese Direktive CloudFront ermöglicht es, veraltete Inhalte aus dem Cache bereitzustellen und gleichzeitig CloudFront asynchron eine neue Version vom Ursprung abzurufen. Dies verbessert die Latenz, da Zuschauer sofort Antworten von Edge-Standorten erhalten, ohne auf den Abruf im Hintergrund warten zu müssen. Für future Anfragen werden neue Inhalte im Hintergrund geladen.
Beispiel: Stale-While-Revalidate
CloudFront macht Folgendes, 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 im Cache (
max-age=3600
). -
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 Inhalt erneut validiert wird, CloudFront wird der veraltete Inhalt bis 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 nicht mehr im Edge-Cache verfügbar. stale-while-revalidate
Stale-If-Error
Diese Direktive ermöglicht CloudFront die Bereitstellung veralteter Inhalte aus dem Cache, wenn der Ursprung nicht erreichbar ist, oder gibt einen Fehlercode zurück, der zwischen 500 und 600 liegt. Dadurch wird sichergestellt, dass Viewer auch während eines Ausfalls des Ursprungs auf Inhalte zugreifen können.
Beispiel: Stale-If-Error
CloudFront macht Folgendes, wenn Sie den Cache-Control
Header so einstellen, dass er diese Direktiven verwendet.
Cache-Control: max-age=3600, stale-if-error=86400
-
CloudFront speichert die Antwort für eine Stunde im Cache (
max-age=3600
). -
Wenn der Ursprung nicht verfügbar ist oder nach Ablauf dieser Zeit eine Fehlermeldung 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, falls innerhalb der angegebenen
stale-if-error
Dauer ein Fehler auftritt. Wenn der veraltete Inhalt nicht verfügbar ist, CloudFront werden dann die benutzerdefinierten Fehlerantworten bereitgestellt, die Sie für den entsprechenden Fehlerstatuscode konfiguriert haben. Weitere Informationen finden Sie unter Generieren Sie benutzerdefinierte Fehlerantworten.
Hinweise
-
CloudFront liefert den veralteten Inhalt bis zum Wert der
stale-if-error
Direktive oder bis zum Wert der CloudFront maximalen TTL, je nachdem, welcher Wert niedriger ist. Nach Ablauf der maximalen TTL-Dauer ist das veraltete Objekt unabhängig vom Wert nicht mehr im Edge-Cache verfügbar.stale-if-error
-
Wenn Sie keine Fehlerantworten konfigurieren
stale-if-error
oder anpassen, CloudFront wird das veraltete Objekt zurückgegeben oder die Fehlerantwort zurück an den Viewer weitergeleitet, 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 Sie beide Direktiven
Bei beiden stale-while-revalidate
stale-if-error
handelt es sich um unabhängige Cache-Steuerungsanweisungen, die Sie zusammen verwenden können, um die Latenz zu reduzieren und einen Puffer für die Reaktion oder Wiederherstellung Ihres Computers hinzuzufügen.
Beispiel: Verwendung beider Direktiven
CloudFront macht Folgendes, wenn Sie den Cache-Control
Header so einstellen, 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 im Cache (
max-age=3600
). -
Wenn eine Anfrage nach Ablauf dieser Dauer gestellt wird, wird CloudFront der veraltete Inhalt bis zu 10 Minuten lang (
stale-while-revalidate=600
) bereitgestellt, während der Inhalt erneut validiert wird. -
Wenn der Ursprungsserver beim CloudFront Versuch, den Inhalt zu revalidieren, einen Fehler zurückgibt, CloudFront stellt er den veralteten Inhalt bis zu 24 Stunden lang weiter 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.
Geben Sie an, wie lange Objekte zwischengespeichert werden CloudFront
Um zu kontrollieren, wie lange ein Objekt im Cache CloudFront aufbewahrt wird, 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 kleineren Wert der Browser-Caching Browser speichern das Objekt für den Wert der |
CloudFront Zwischenspeichern CloudFront Das Zwischenspeichern 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 zwischenspeichert das Objekt für den Wert der CloudFront minimalen TTL oder der Standard-TTL, je nachdem, welcher Wert größer ist. Browser-Caching Abhängig vom Browser. |
Der Ursprung fügt dem Objekt |
CloudFront Zwischenspeichern CloudFront speichert das Objekt für den kleineren Wert der Browser-Caching Browser speichern das Objekt für den Wert der |
CloudFront Zwischenspeichern CloudFront Das Zwischenspeichern 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 zwischenspeichert das Objekt bis zu dem Datum in der Browser-Caching Browser speichern das Objekt bis zum Datum im |
CloudFront Zwischenspeichern CloudFront Das Zwischenspeichern hängt von den Werten der CloudFront minimalen TTL und der maximalen TTL und dem Header ab:
Browser-Caching Browser speichern das Objekt bis zum Datum und der Uhrzeit im |
Der Ursprung fügt Objekten |
CloudFront und Browser respektieren die Header. |
CloudFront Zwischenspeichern CloudFront speichert das Objekt für den Wert der CloudFront minimalen TTL 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 private
Direktiven, Cache-Control: no-cache
no-store
, und/oder in den Origin-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 angezeigt, 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 future Anfragen ein Fehler zurückgegeben wird, wenn der Ursprung nicht erreichbar ist, anstatt das Objekt zurückzugeben, das es zuvor vom Ursprung erhalten hat.
Informationen 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
Fügen Sie mithilfe der Amazon S3 S3-Konsole Header zu Ihren Objekten hinzu
Sie können das Expires
Header-Feld Cache-Control
oder zu Ihren Amazon S3 S3-Objekten hinzufügen. Dazu ändern Sie die Metadatenfelder für das Objekt.
So fügen Sie Amazon S3 S3-Objekten ein Cache-Control
Expires
Oder-Header-Feld hinzu
-
Folgen Sie den Anweisungen im Abschnitt Ersetzen systemdefinierter Metadaten im Thema Objektmetadaten in der Amazon S3 S3-Konsole bearbeiten im Amazon S3 S3-Benutzerhandbuch.
-
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=86400
eingeben. FürExpires
könnten Sie ein Ablaufdatum und eine Uhrzeit wieWed, 30 Jun 2021 09:28:00 GMT
eingeben. -
Folgen Sie den restlichen Schritten, um Ihre Metadatenänderungen zu speichern.