Inhalt auf der Grundlage von Anforderungsheadern zwischenspeichern - 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.

Inhalt auf der Grundlage von Anforderungsheadern zwischenspeichern

CloudFront lässt Sie wählen, ob Sie Header CloudFront an Ihren Ursprung weiterleiten und separate Versionen eines angegebenen Objekts auf der Grundlage der Header-Werte in Viewer-Anfragen zwischenspeichern möchten. Auf diese Weise können Sie auf der Grundlage des Geräts, das der Benutzers verwendet, des Standorts des Viewers, der Spracheinstellung des Viewers und einer Vielzahl anderer Kriterien unterschiedliche Versionen Ihrer Inhalte bereitstellen.

Header und Verteilungen – Übersicht

Standardmäßig werden Header CloudFront nicht berücksichtigt, wenn Sie Ihre Objekte an Randpositionen zwischenspeichern. Wenn Ihr Origin zwei Objekte zurückgibt und diese sich nur durch die Werte in den Anforderungsheadern unterscheiden, wird nur eine Version des Objekts CloudFront zwischengespeichert.

Sie können so konfigurieren CloudFront , dass Header an den Ursprung weitergeleitet werden, was CloudFront dazu führt, dass mehrere Versionen eines Objekts auf der Grundlage der Werte in einem oder mehreren Anforderungsheadern zwischengespeichert werden. Um CloudFront zu konfigurieren, dass Objekte auf der Grundlage der Werte bestimmter Header zwischengespeichert werden, geben Sie die Einstellungen für das Cache-Verhalten für Ihre Distribution an. Weitere Informationen finden Sie unter Cache-Speicherung basierend auf ausgewählten Anforderungs-Headern.

Nehmen wir beispielsweise an, dass Viewer-Anforderungen für logo.jpg einen benutzerdefinierten Product-Header enthalten, der entweder den Wert Acme oder Apex hat. Wenn Sie so konfigurieren CloudFront , dass Ihre Objekte auf der Grundlage des Werts des Product Headers zwischengespeichert werden, werden Anfragen für logo.jpg an den Ursprung CloudFront weitergeleitet und die Product Header- und Header-Werte eingeschlossen. CloudFront zwischenspeichert logo.jpg einmal für Anfragen, in denen sich der Wert des Product Headers befindet, Acme und einmal für Anfragen, in denen sich der Wert befindet. Apex

Sie können jedes Cache-Verhalten in einer Verteilung so konfigurieren, dass eine der folgenden Aktionen ausgeführt wird:

  • Weiterleiten aller Header an Ihren Ursprung

    Anmerkung

    Für ältere Cache-Einstellungen — Wenn Sie so konfigurieren CloudFront , dass alle Header an Ihren Ursprung weitergeleitet werden, werden die mit diesem Cache-Verhalten verknüpften Objekte CloudFront nicht zwischengespeichert. Stattdessen werden alle Anfragen an den Ursprung gesendet.

  • Leitet eine Liste von Headern weiter, die Sie angeben. CloudFront speichert Ihre Objekte auf der Grundlage der Werte in allen angegebenen Headern im Cache. CloudFront leitet auch die Header weiter, die standardmäßig weitergeleitet werden, aber Ihre Objekte werden nur auf der Grundlage der von Ihnen angegebenen Header zwischengespeichert.

  • Weiterleiten nur der Standard-Header. In dieser Konfiguration werden Ihre Objekte CloudFront nicht auf der Grundlage der Werte in den Anforderungsheadern zwischengespeichert.

Informationen zum aktuellen Kontingent für die Anzahl von Headern, die Sie für jedes Cache-Verhalten weiterleiten können, oder zum Anfordern eines höheren Kontingents finden Sie unter Kontingente für Header.

Hinweise zur Verwendung der CloudFront Konsole zur Aktualisierung einer Distribution, bei der Header an den Ursprung CloudFront weitergeleitet werden, finden Sie unter. Eine Verteilung aktualisieren Informationen zur Verwendung der CloudFront API zur Aktualisierung einer bestehenden Distribution finden Sie unter Distribution aktualisieren in der Amazon CloudFront API-Referenz.

Wählen Sie die Header aus, auf denen das Caching basieren soll

Die Header, die Sie an den Ursprung weiterleiten können und auf denen das Caching CloudFront basiert, hängen davon ab, ob es sich bei Ihrem Ursprung um einen Amazon S3 S3-Bucket oder einen benutzerdefinierten Ursprung handelt.

  • Amazon S3 — Sie können so konfigurieren CloudFront , dass Ihre Objekte auf der Grundlage bestimmter Header weitergeleitet und zwischengespeichert werden (siehe die folgende Ausnahmeliste). Allerdings empfehlen wir, möglichst keine Header mit einem Amazon-S3-Ursprung weiterzuleiten, es sei denn, Sie implementieren Cross-Origin Resource Sharing (CORS, ursprungsübergreifende gemeinsame Nutzung von Ressourcen) oder möchten Inhalte mit Lambda@Edge in Ereignissen auf Ursprungsseite personalisieren.

    • Um CORS zu konfigurieren, müssen Sie Header weiterleiten, die die Verteilung von Inhalten für Websites CloudFront ermöglichen, die für Cross-Origin Resource Sharing (CORS) aktiviert sind. Weitere Informationen finden Sie unter Konfigurieren Sie so CloudFront , dass die CORS-Einstellungen respektiert werden.

    • Um Inhalte mithilfe von Headern zu personalisieren, die Sie an Ihren Amazon S3 S3-Ursprung weiterleiten, schreiben Sie Lambda @Edge -Funktionen, fügen sie hinzu und verknüpfen sie mit Ihrer CloudFront Verteilung, die durch ein Ereignis ausgelöst wird, das auf den Ursprung gerichtet ist. Weitere Informationen zum Verwenden von Headern, um Inhalte zu personalisieren, finden Sie unter Personalisieren von Inhalten nach Land oder Gerätetyp-Header – Beispiele.

      Wir empfehlen, möglichst keine Header weiterzuleiten, die Sie nicht zum Personalisieren von Inhalten verwenden, da das Weiterleiten zusätzlicher Header zu einer Verringerung der Cache-Trefferrate führen kann. Das heißt, es CloudFront können nicht so viele Anfragen aus Edge-Caches bearbeitet werden, als der Anteil aller Anfragen.

  • Benutzerdefinierter Ursprung — Sie können so konfigurierenCloudFront , dass der Cache auf der Grundlage des Werts eines beliebigen Anforderungsheaders gespeichert wird, mit Ausnahme der folgenden:

    • Connection

    • Cookie – Wenn die Weiterleitung und Zwischenspeicherung auf der Grundlage von Cookies erfolgen soll, verwenden Sie eine separate Einstellung in Ihrer Verteilung. Weitere Informationen finden Sie unter Auf Cookies basierender Inhalt zwischenspeichern.

    • Host (for Amazon S3 origins)

    • Proxy-Authorization

    • TE

    • Upgrade

    Sie können so konfigurieren CloudFront , dass Objekte auf der Grundlage von Werten in den User-Agent Headern Date und zwischengespeichert werden. Dies wird jedoch nicht empfohlen. Diese Header haben zahlreiche mögliche Werte, und das Zwischenspeichern auf der Grundlage ihrer Werte könnte dazu führen, dass deutlich mehr Anfragen CloudFront an Ihren Ursprung weitergeleitet werden.

Eine vollständige Liste der HTTP-Anforderungsheader und deren Verarbeitung finden Sie CloudFront unter. Header und CloudFront Verhalten von HTTP-Anfragen (benutzerdefiniert und Amazon S3 S3-Ursprünge)

Konfigurieren Sie so CloudFront , dass die CORS-Einstellungen respektiert werden

Wenn Sie Cross-Origin Resource Sharing (CORS) auf einem Amazon S3-Bucket oder einem benutzerdefinierten Ursprung aktiviert haben, müssen Sie bestimmte Header zum Weiterleiten auswählen, um die CORS-Einstellungen zu berücksichtigen. Die Header, die Sie weiterleiten müssen, sind abhängig vom Ursprung (Amazon S3 oder benutzerdefiniert) und von der Tatsache, ob Sie OPTIONS-Antworten zwischenspeichern möchten, unterschiedlich.

Amazon S3

  • Wenn Sie möchten, dass OPTIONS-Antworten im Cache gespeichert werden, führen Sie die folgenden Schritte aus:

    • Wählen Sie die Optionen für die Standardeinstellungen für das Cache-Verhalten aus, mit denen das Zwischenspeichern von OPTIONS-Antworten aktiviert wird.

    • Konfigurieren Sie CloudFront die Konfiguration so, dass die folgenden Header weitergeleitet werden: OriginAccess-Control-Request-Headers, und. Access-Control-Request-Method

  • Wenn Sie nicht möchten, dass OPTIONS-Antworten im Cache gespeichert werden, konfigurieren Sie CloudFront so, dass der Origin-Header zusammen mit allen Headern, die für Ihren Ursprung erforderlich sind, weitergeleitet wird (z. B. Access-Control-Request-Headers, Access-Control-Request-Method oder andere).

Benutzerdefinierte Ursprünge – Leiten Sie den Origin-Header zusammen mit anderen Headern weiter, die für Ihren Ursprung erforderlich sind.

Um CloudFront zu konfigurieren, dass Antworten auf der Grundlage von CORS zwischengespeichert werden, müssen Sie die Weiterleitung von Headern mithilfe einer Cache-Richtlinie konfigurieren CloudFront . Weitere Informationen finden Sie unter Steuern Sie den Cache-Schlüssel mit einer Richtlinie.

Weitere Informationen zu CORS und Amazon S3 finden Sie unter Cross-Origin Resource Sharing (CORS) verwenden im Benutzerhandbuch zu Amazon Simple Storage Service.

Konfigurieren Sie das Caching auf der Grundlage des Gerätetyps

Wenn Sie je CloudFront nach dem Gerät, das ein Benutzer zum Ansehen Ihrer Inhalte verwendet, verschiedene Versionen Ihrer Objekte zwischenspeichern möchten, konfigurieren Sie die Konfiguration so, CloudFront dass die entsprechenden Header an Ihren benutzerdefinierten Ursprung weitergeleitet werden:

  • CloudFront-Is-Desktop-Viewer

  • CloudFront-Is-Mobile-Viewer

  • CloudFront-Is-SmartTV-Viewer

  • CloudFront-Is-Tablet-Viewer

CloudFront Legt basierend auf dem Wert des User-Agent Headers den Wert dieser Header auf true oder false vor der Weiterleitung der Anfrage an Ihren Ursprung fest. Wenn ein Gerät in mehr als eine Kategorie fällt, können mehrere Werte sei true. Beispielsweise CloudFront könnte bei einigen Tablet-Geräten sowohl als auch CloudFront-Is-Mobile-Viewer auf festgelegt CloudFront-Is-Tablet-Viewer werdentrue.

Konfigurieren Sie das Caching basierend auf der Sprache des Betrachters

Wenn Sie verschiedene Versionen Ihrer Objekte basierend auf der in der Anfrage angegebenen Sprache zwischenspeichern möchten CloudFront , konfigurieren Sie die Konfiguration so, CloudFront dass der Accept-Language Header an Ihren Ursprung weitergeleitet wird.

Konfigurieren Sie das Caching auf der Grundlage des Standorts des Betrachters

Wenn Sie je CloudFront nach Land, aus dem die Anfrage kam, unterschiedliche Versionen Ihrer Objekte zwischenspeichern möchten, konfigurieren Sie die Konfiguration so CloudFront , dass der CloudFront-Viewer-Country Header an Ihren Ursprung weitergeleitet wird. CloudFront konvertiert automatisch die IP-Adresse, von der die Anfrage kam, in einen aus zwei Buchstaben bestehenden Ländercode. Eine easy-to-use Liste der Ländercodes, sortierbar nach Code und Ländernamen, finden Sie im Wikipedia-Eintrag ISO 3166-1 Alpha-2.

Konfigurieren Sie das Caching auf der Grundlage des Protokolls der Anfrage

Wenn Sie verschiedene Versionen Ihrer Objekte basierend auf dem Protokoll der Anfrage, HTTP oder HTTPS, zwischenspeichern möchten CloudFront , konfigurieren Sie die Konfiguration so, dass der CloudFront-Forwarded-Proto Header CloudFront an Ihren Ursprung weitergeleitet wird.

Konfigurieren Sie das Caching für komprimierte Dateien

Wenn Ihr Ursprung die Brotli-Komprimierung unterstützt, können Sie die Zwischenspeicherung basierend auf dem Accept-Encoding-Header durchführen. Konfigurieren Sie die Zwischenspeicherung nur dann basierend auf Accept-Encoding, wenn Ihr Ursprungs-Server abhängig vom Header unterschiedliche Inhalte bereitstellt.

Auswirkungen der Zwischenspeicherung auf der Grundlage von Headern auf die Leistung

Wenn Sie das Zwischenspeichern CloudFront auf der Grundlage eines oder mehrerer Header konfigurieren und die Header mehr als einen möglichen Wert haben, werden mehr Anfragen CloudFront für dasselbe Objekt an Ihren Ursprungsserver weitergeleitet. Dadurch wird die Leistung verringert und die Last auf Ihrem Ursprungs-Server erhöht. Wenn Ihr Ursprungsserver unabhängig vom Wert eines bestimmten Headers dasselbe Objekt zurückgibt, empfehlen wir Ihnen, die Konfiguration nicht so CloudFront zu konfigurieren, dass der Cache auf der Grundlage dieses Headers zwischengespeichert wird.

Wenn Sie so konfigurieren, CloudFront dass mehr als ein Header weitergeleitet wird, hat die Reihenfolge der Header in Viewer-Anfragen keinen Einfluss auf das Caching, solange die Werte identisch sind. Wenn beispielsweise eine Anfrage die Header A:1, B:2 und eine andere Anfrage B:2, A:1 enthält, wird nur eine Kopie des Objekts zwischengespeichert. CloudFront

Auswirkungen der Schreibweise von Headern und Header-Werten auf die Zwischenspeicherung

Bei CloudFront Caches, die auf Header-Werten basieren, wird die Groß- und Kleinschreibung des Header-Namens nicht berücksichtigt, wohl aber die Groß- und Kleinschreibung des Header-Werts:

  • Wenn Viewer-Anfragen Product:Acme sowohl als auch enthaltenproduct:Acme, wird ein Objekt nur einmal CloudFront zwischengespeichert. Der einzige Unterschied zwischen ihnen ist die Schreibweise des Header-Namens, die sich nicht auf die Zwischenspeicherung auswirkt.

  • Wenn Viewer-Anfragen Product:Acme sowohl als auch enthaltenProduct:acme, wird ein Objekt zweimal CloudFront zwischengespeichert, da der Wert Acme in einigen Anfragen und acme in anderen enthalten ist.

Header, die zum CloudFront Viewer zurückkehren

Die Konfiguration CloudFront für die Weiterleitung und Zwischenspeicherung von Headern hat keinen Einfluss darauf, welche Header zum CloudFront Viewer zurückkehren. CloudFront gibt mit wenigen Ausnahmen alle Header zurück, die es vom Ursprung erhält. Weitere Informationen finden Sie im entsprechenden Thema: