Zwischenspeichern von Inhalten auf der Grundlage von Anfrage-Headern - 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.

Zwischenspeichern von Inhalten auf der Grundlage von Anfrage-Headern

CloudFront Mit können Sie wählen CloudFront , ob Sie Header an Ihren Ursprung weiterleiten und separate Versionen eines bestimmten Objekts basierend auf den Header-Werten in Viewer-Anforderungen 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 berücksichtigt beim CloudFront Zwischenspeichern Ihrer Objekte an Edge-Standorten keine Header. Wenn Ihr Ursprung zwei Objekte zurückgibt und sie sich nur durch die Werte in den Anforderungs-Headern unterscheiden, CloudFront speichert nur eine Version des Objekts zwischen.

Sie können CloudFront so konfigurieren, dass Header an den Ursprung weitergeleitet werden, was dazu führt, dass mehrere Versionen eines Objekts basierend auf den Werten in einem oder mehreren Anforderungs-Headern CloudFront zwischenspeichert. Um CloudFront so zu konfigurieren, dass es Objekte basierend auf den Werten bestimmter Header im Cache speichert, geben Sie Einstellungen für das Cache-Verhalten für Ihre Verteilung vor. 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 CloudFront so konfigurieren, dass Ihre Objekte auf der Grundlage des Werts des -ProductHeaders zwischengespeichert werden, CloudFront leitet Anfragen für logo.jpg an den Ursprung weiter und schließt den Product Header und die Header values. CloudFront caches logo.jpg einmal für Anfragen ein, in denen der Wert des -ProductHeaders ist, Acme und einmal für Anfragen, in denen der Wert istApex.

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 Legacy-Cache-Einstellungen – Wenn Sie CloudFront so konfigurieren, dass alle Header an Ihren Ursprung weitergeleitet werden, speichert die Objekte, die diesem Cache-Verhalten zugeordnet sind, CloudFront nicht zwischen. Stattdessen werden alle Anfragen an den Ursprung gesendet.

  • Weiterleiten einer Liste von Headern, die Sie angeben. CloudFront caches Ihre Objekte auf der Grundlage der Werte in allen angegebenen Headern. leitet CloudFront auch die Header weiter, die standardmäßig weitergeleitet werden, aber es speichert Ihre Objekte nur auf der Grundlage der von Ihnen angegebenen Header.

  • Weiterleiten nur der Standard-Header. In dieser Konfiguration speichert Ihre Objekte CloudFront nicht auf der Grundlage der Werte in den Anfrage-Headern zwischen.

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.

Informationen zur Verwendung der CloudFront Konsole zum Aktualisieren einer Verteilung, damit Header an den Ursprung CloudFront weiterleitet, finden Sie unter Aktualisieren einer Verteilung. Informationen zur Verwendung der CloudFront -API zum Aktualisieren einer vorhandenen Verteilung finden Sie unter Update Distribution in der Amazon CloudFront -API-Referenz.

Auswählen der Header, auf denen die Zwischenspeicherung basieren soll

Die Header, die Sie an den Ursprung weiterleiten können und auf denen die Zwischenspeicherung CloudFront basiert, hängen davon ab, ob Ihr Ursprung ein Amazon S3-Bucket oder ein benutzerdefinierter Ursprung ist.

  • Amazon S3 – Sie können so konfigurieren CloudFront , dass Ihre Objekte basierend auf einer Reihe bestimmter Header weitergeleitet und zwischengespeichert werden (siehe die folgende Liste von Ausnahmen). 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 es ermöglichen, Inhalte für Websites CloudFront zu verteilen, die für Cross-Origin Resource Sharing (CORS) aktiviert sind. Weitere Informationen finden Sie unter Konfigurieren von CloudFront zur Einhaltung der CORS-Einstellungen.

    • Um Inhalte mithilfe von Headern zu personalisieren, die Sie an Ihren Amazon S3-Ursprung weiterleiten, schreiben und fügen Sie Lambda@Edge-Funktionen hinzu und verknüpfen sie mit Ihrer CloudFront Verteilung, um durch ein Ereignis auf Ursprungsseite ausgelöst zu werden. 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, CloudFront kann nicht so viele Anfragen von Edge-Caches als Anteil aller Anfragen bearbeiten.

  • Benutzerdefinierter Ursprung – Sie können so konfigurieren CloudFront , dass die Zwischenspeicherung auf der Grundlage des Werts eines beliebigen Anforderungs-Headers erfolgt, 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 Zwischenspeichern von Inhalten auf der Grundlage von Cookies.

    • 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 können eine Vielzahl möglicher Werte enthalten; das Zwischenspeichern auf Basis dieser Werte würde dazu führen, dass wesentlich mehr Anfragen von CloudFront an Ihren Ursprungs-Server weitergeleitet werden.

Eine vollständige Liste der HTTP-Anforderungs-Header und deren CloudFront Verarbeitung finden Sie unter HTTP-Anfrage-Header und - CloudFront Verhalten (benutzerdefinierte und Amazon S3-Ursprünge).

Konfigurieren von CloudFront zur Einhaltung der CORS-Einstellungen

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 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 so zu konfigurieren, dass Antworten basierend auf CORS zwischengespeichert werden, müssen Sie so konfigurieren CloudFront , dass Header mithilfe einer Cache-Richtlinie weitergeleitet werden. Weitere Informationen finden Sie unter Arbeiten mit Richtlinien.

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

Konfigurieren der Zwischenspeicherung basierend auf dem Gerätetyp

Wenn Sie verschiedene Versionen Ihrer Objekte basierend auf dem Gerät CloudFront zwischenspeichern möchten, das ein Benutzer zum Anzeigen Ihrer Inhalte verwendet, konfigurieren Sie CloudFront so, 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

Basierend auf dem Wert des -User-AgentHeaders CloudFront legt den Wert dieser Header auf true oder fest, false bevor die Anforderung an Ihren Ursprung weitergeleitet wird. 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 CloudFront-Is-Tablet-Viewer auf setzentrue.

Konfigurieren der Zwischenspeicherung basierend auf der Sprache des Viewers

Wenn Sie verschiedene Versionen Ihrer Objekte auf der Grundlage der in der Anforderung angegebenen Sprache CloudFront zwischenspeichern möchten, konfigurieren Sie CloudFront so, dass der -Accept-LanguageHeader an Ihren Ursprung weitergeleitet wird.

Konfigurieren der Zwischenspeicherung basierend auf dem Standort des Viewers

Wenn Sie verschiedene Versionen Ihrer Objekte auf der Grundlage des Landes CloudFront zwischenspeichern möchten, aus dem die Anforderung stammt, konfigurieren Sie CloudFront so, dass der -CloudFront-Viewer-CountryHeader an Ihren Ursprung weitergeleitet wird. konvertiert CloudFront automatisch die IP-Adresse, von der die Anforderung stammt, in einen zweistelligen Ländercode. Eine easy-to-use Liste der Ländercodes, die nach Code und Ländername sortiert werden können, finden Sie im Wikipedia-Eintrag ISO 3166-1 alpha-2.

Konfigurieren der Zwischenspeicherung basierend auf dem Protokoll der Anfrage

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

Konfigurieren der Zwischenspeicherung 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 so konfigurieren CloudFront , dass die Zwischenspeicherung auf der Grundlage eines oder mehrerer Header erfolgt und die Header mehr als einen möglichen Wert haben, CloudFront leitet mehr Anfragen für dasselbe Objekt an Ihren Ursprungs-Server weiter. Dadurch wird die Leistung verringert und die Last auf Ihrem Ursprungs-Server erhöht. Wenn Ihr Ursprungs-Server unabhängig vom Wert eines bestimmten Headers dasselbe Objekt zurückgibt, empfehlen wir, nicht CloudFront so zu konfigurieren, dass eine Zwischenspeicherung auf der Grundlage dieses Headers erfolgt.

Wenn Sie CloudFront so konfigurieren, dass mehr als ein Header weitergeleitet wird, wirkt sich die Reihenfolge der Header in Viewer-Anforderungen nicht auf die Zwischenspeicherung aus, solange die Werte identisch sind. Wenn beispielsweise eine Anforderung die Header A:1, B:2 und eine andere Anforderung B:2, A:1 enthält, CloudFront speichert nur eine Kopie des Objekts zwischen.

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

Wenn auf der Grundlage von Header-Werten CloudFront zwischenspeichert, berücksichtigt es die Groß- und Kleinschreibung des Header-Namens nicht, berücksichtigt jedoch die Groß- und Kleinschreibung des Header-Werts:

  • Wenn Betrachteranfragen sowohl als auch enthaltenProduct:Acmeproduct:Acme, CloudFront speichert ein Objekt nur einmal zwischen. Der einzige Unterschied zwischen ihnen ist die Schreibweise des Header-Namens, die sich nicht auf die Zwischenspeicherung auswirkt.

  • Wenn Betrachteranfragen sowohl als auch enthaltenProduct:AcmeProduct:acme, CloudFront speichert ein Objekt zweimal zwischen, da der Wert Acme in einigen Anforderungen und acme in anderen ist.

Header, die an den Viewer CloudFront zurückgibt

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