Verwalten Sie, wie lange Inhalte im Cache verbleiben (Ablauf) - Amazon CloudFront

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 Sie, wie lange Inhalte im Cache verbleiben (Ablauf)

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.

Standardmäßig läuft jede Datei automatisch nach 24 Stunden ab. Sie können das Standardverhalten jedoch auf zwei Arten ändern:

Weitere Informationen darüber, wie Minimum TTLTTL, Standard und Maximum mit den s-maxage Anweisungen und max-age und dem Expires Header-Feld TTL interagieren, finden Sie unterGeben 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 4xx- und 5xx-Statuscodes von Ihrem Absender verarbeitet.

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 Minimum TTLTTL, Standard und Maximum wirken sich TTL ebenfalls auf die Cachedauer aus. Im Folgenden finden Sie jedoch eine Übersicht darüber, wie sich Header auf die Cachedauer 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 und Cache-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 in dem in RFC2616, 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 Werte sowohl für als auch für Cache-Control max-age angebenExpires, CloudFront verwendet 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 Pragma Header-Felder HTTP Cache-Control oder in einer GET Anfrage eines Viewers nicht verwenden, CloudFront um zu erzwingen, für das Objekt zum Ursprungsserver zurückzukehren. CloudFront ignoriert diese Header-Felder in Viewer-Anfragen.

Weitere Informationen zu den Cache-Control und Expires Header-Feldern finden Sie in den folgenden Abschnitten in RFC2616, Hypertext Transfer Protocol - - /1.1: HTTP

Veraltete (abgelaufene) Inhalte bereitstellen

CloudFront unterstützt die Steueranweisungen Stale-While-Revalidate und die Stale-If-Error Cache-Steueranweisungen.

  • Die stale-while-revalidate Direktive ermöglicht CloudFront die Bereitstellung veralteter Inhalte aus dem Cache, während sie asynchron eine neue Version vom Ursprung abruft. Dies verbessert die Latenz, da Benutzer sofort Antworten CloudFront von den Edge-Standorten erhalten, ohne auf den Hintergrundabruf warten zu müssen, und neue Inhalte für future Anfragen im Hintergrund geladen werden.

    Im folgenden Beispiel wird die Antwort für eine Stunde CloudFront zwischengespeichert ()max-age=3600. Wenn nach diesem Zeitraum eine Anfrage 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. Der veraltete Inhalt wird bis zu 10 Minuten lang (stale-while-revalidate=600) bereitgestellt, während der Inhalt erneut validiert wird.

    Cache-Control: max-age=3600, stale-while-revalidate=600
    Anmerkung

    CloudFront stellt den veralteten Inhalt bis zum Wert der stale-while-revalidate Direktive oder bis zum CloudFront TTL Höchstwert bereit, je nachdem, welcher Wert niedriger ist.

  • Die stale-if-error 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.

    Im folgenden Beispiel wird die Antwort für eine Stunde CloudFront zwischengespeichert (). max-age=3600 Wenn der Ursprung nicht verfügbar ist oder nach diesem Zeitraum eine Fehlermeldung zurückgibt, CloudFront wird der veraltete Inhalt bis zu 24 Stunden () stale-if-error=86400 weiterhin bereitgestellt.

    Cache-Control: max-age=3600, stale-if-error=86400
    Anmerkung

    CloudFront stellt den veralteten Inhalt bis zum Wert der stale-if-error Direktive oder bis zum CloudFront Höchstwert bereit, je nachdemTTL, welcher Wert niedriger ist.

    Wenn stale-if-error sowohl benutzerdefinierte als auch benutzerdefinierte Fehlerantworten konfiguriert sind, wird CloudFront zunächst versucht, den veralteten Inhalt bereitzustellen, falls innerhalb der angegebenen Dauer ein Fehler auftritt. stale-if-error Wenn veralteter Inhalt nicht verfügbar ist oder der Inhalt die stale-if-error Dauer überschritten hat, werden die für CloudFront den entsprechenden Fehlerstatuscode konfigurierten benutzerdefinierten Fehlerantworten bereitgestellt.

Verwenden Sie beide zusammen

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.

Im folgenden Beispiel wird die Antwort für eine Stunde CloudFront zwischengespeichert (max-age=3600). Wenn nach diesem Zeitraum eine Anfrage gestellt wird, wird der CloudFront veraltete Inhalt bis zu 10 Minuten lang (stale-while-revalidate=600) bereitgestellt, während der Inhalt erneut überprüft wird. Wenn der Ursprungsserver beim CloudFront Versuch, den Inhalt zu revalidieren, einen Fehler zurückgibt, CloudFront wird der veraltete Inhalt bis zu 24 Stunden lang () weiterhin bereitgestellt. stale-if-error=86400

Cache-Control: max-age=3600, stale-while-revalidate=600, stale-if-error=86400
Tipp

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 Mindest-, Höchst- und TTL Standardwerte 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- oder Expires-Header in Antworten vom Ursprung einschließen. Diese Header helfen auch zu bestimmen, wie lange ein Browser ein Objekt im Browser-Cache aufbewahrt, bevor eine weitere Anfrage an CloudFront gesendet wird.

In der folgenden Tabelle wird erklärt, wie sich die vom Ursprung gesendeten Expires Header Cache-Control und die TTL Einstellungen in einem Cache-Verhalten auf das Caching auswirken.

Urspung-Header Minimum = 0 TTL Minimum TTL > 0

Der Ursprung fügt dem Objekt eine Cache-Control: max-age-Richtlinie hinzu

CloudFront Zwischenspeichern

CloudFront zwischenspeichert das Objekt für den kleineren Wert der Cache-Control: max-age Direktive oder den Wert des Maximums CloudFront . TTL

Browser-Caching

Browser speichern das Objekt für den Wert der Cache-Control: max-age-Richtlinie zwischen.

CloudFront Zwischenspeichern

CloudFront Das Zwischenspeichern hängt von den CloudFront Minimal TTL - und Maximalwerten und der TTL Direktive ab: Cache-Control max-age

  • Wenn Minimum TTL < max-age < MaximumTTL, wird das Objekt für den Wert der Cache-Control: max-age Direktive CloudFront zwischengespeichert.

  • Bei max-age < Minimum TTL wird das Objekt für den Minimalwert CloudFront zwischengespeichert. CloudFront TTL

  • Bei max-age > Maximum TTL wird das Objekt für den Maximalwert CloudFront zwischengespeichert. CloudFront TTL

Browser-Caching

Browser speichern das Objekt für den Wert der Cache-Control: max-age-Richtlinie zwischen.

Der Ursprung fügt dem Objekt keine Cache-Control: max-age-Richtlinie hinzu

CloudFront Zwischenspeichern

CloudFront speichert das Objekt für den Standardwert im Cache. CloudFront TTL

Browser-Caching

Abhängig vom Browser.

CloudFront Zwischenspeichern

CloudFront speichert das Objekt für den Wert des CloudFront Minimums TTL oder des Standardwerts, je nachdem, welcher Wert größer ist. TTL

Browser-Caching

Abhängig vom Browser.

Der Ursprung fügt dem Objekt Cache-Control: max-age- und Cache-Control: s-maxage-Richtlinien hinzu

CloudFront Zwischenspeichern

CloudFront zwischenspeichert das Objekt für den kleineren Wert der Cache-Control: s-maxage Direktive oder den Wert des Maximums CloudFront . TTL

Browser-Caching

Browser speichern das Objekt für den Wert der Cache-Control max-age-Richtlinie zwischen.

CloudFront Zwischenspeichern

CloudFront Das Zwischenspeichern hängt von den CloudFront Minimal TTL - und Maximalwerten und der TTL Direktive ab: Cache-Control: s-maxage

  • Wenn Minimum TTL < s-maxage < MaximumTTL, wird das Objekt für den Wert der Cache-Control: s-maxage Direktive CloudFront zwischengespeichert.

  • Bei s-maxage < Minimum TTL wird das Objekt für den Minimalwert CloudFront zwischengespeichert. CloudFront TTL

  • Bei s-maxage > Maximum TTL wird das Objekt für den Maximalwert CloudFront zwischengespeichert. CloudFront TTL

Browser-Caching

Browser speichern das Objekt für den Wert der Cache-Control: max-age-Richtlinie zwischen.

Der Ursprung fügt dem Objekt einen Expires-Header hinzu

CloudFront Zwischenspeichern

CloudFront zwischenspeichert das Objekt bis zu dem Datum in der Expires Kopfzeile oder bis zum CloudFront Maximalwert, je nachdemTTL, welcher Zeitpunkt früher eintritt.

Browser-Caching

Browser speichern das Objekt bis zum Datum im Expires-Header zwischen.

CloudFront Zwischenspeichern

CloudFront Das Zwischenspeichern hängt von den Werten für CloudFront Minimum TTL TTL und Maximum sowie vom Header ab: Expires

  • Wenn Minimum TTL < Expires < MaximumTTL, wird das Objekt bis zum Datum und der Uhrzeit im Header CloudFront zwischengespeichert. Expires

  • Bei Expires < Minimum TTL wird das Objekt für den Minimalwert CloudFront zwischengespeichert. CloudFront TTL

  • Bei Expires > Maximum TTL wird das Objekt für den Maximalwert CloudFront zwischengespeichert. CloudFront TTL

Browser-Caching

Browser speichern das Objekt bis zum Datum und der Uhrzeit im Expires-Header zwischen.

Der Ursprung fügt Objekten Cache-Control: no-cache-, no-store-, und/oder private-Richtlinien hinzu

CloudFront und Browser respektieren die Header.

CloudFront Zwischenspeichern

CloudFront speichert das Objekt für den Minimalwert im Cache. CloudFront TTL Siehe die Warnung unter dieser Tabelle.

Browser-Caching

Browser berücksichtigen die Header.

Warnung

Wenn Ihr Minimum größer als 0 TTL ist, wird das Minimum der Cache-Richtlinie CloudFront verwendetTTL, auch wenn die private Direktiven Cache-Control: no-cacheno-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 Minimal - oder TTL Maximalwert 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 finden Sie CloudFront API unter. UpdateDistribution

Fügen Sie mithilfe der Amazon S3 S3-Konsole Header zu Ihren Objekten hinzu

So fügen Sie mithilfe der Amazon S3-Konsole ein Cache-Control- oder Expires-Header-Feld zu Amazon S3-Objekten hinzu
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste der Buckets den Namen des Buckets aus, der die Dateien enthält, denen Sie Header hinzufügen.

  3. Aktivieren Sie das Kontrollkästchen neben dem Namen der Datei oder des Ordners, zu dem Sie Header hinzufügen möchten. Wenn Sie einem Ordner Header hinzufügen, wirkt sich dies auf alle Dateien in diesem Ordner aus.

  4. Wählen Sie Aktionen und dann Metadaten bearbeiten.

  5. Führen Sie im Bereich Metadaten hinzufügen die folgenden Schritte aus:

    1. Wählen Sie Metadaten hinzufügen aus.

    2. Wählen Sie unter Typ die Option Systemdefiniert aus.

    3. Wählen Sie für Schlüssel den Namen des Headers aus, den Sie hinzufügen (Cache-Control oder Expires).

    4. Geben Sie für Wert einen Header-Wert ein. Zum Beispiel könnten Sie für einen Cache-Control-Header max-age=86400 eingeben. Für Expires könnten Sie ein Ablaufdatum und eine Uhrzeit wie Wed, 30 Jun 2021 09:28:00 GMT eingeben.

  6. Wählen Sie unten auf der Seite Metadaten bearbeiten aus.