Cache-Inhalt auf der Grundlage von Abfragezeichenfolgenparametern - 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.

Cache-Inhalt auf der Grundlage von Abfragezeichenfolgenparametern

Einige Webanwendungen verwenden zum Senden von Informationen an den Ursprung Abfragezeichenfolgen. Eine Abfragezeichenfolge ist der Teil einer Webanfrage nach dem Zeichen ?. Die Zeichenfolge kann einen oder mehrere durch das Zeichen & getrennte Parameter enthalten. Im folgenden Beispiel enthält die Abfragezeichenfolge zwei Parameter, color=red und size=large:

https://d111111abcdef8.cloudfront.net/images/image.jpg?color=red&size=large

Bei Verteilungen können Sie wählen, ob Sie Abfragezeichenfolgen CloudFront an Ihren Ursprung weiterleiten möchten und ob Ihre Inhalte auf der Grundlage aller Parameter oder anhand ausgewählter Parameter zwischengespeichert werden sollen. Warum kann dies sinnvoll sein? Betrachten Sie das folgende Beispiel.

Angenommen, Ihre Website ist in fünf Sprachen verfügbar. Die Verzeichnisstruktur und Dateinamen für alle fünf Versionen der Website sind identisch. Wenn ein Benutzer Ihre Website aufruft, CloudFront enthalten Anfragen, die weitergeleitet werden, einen Sprachabfragezeichenfolgenparameter, der auf der vom Benutzer ausgewählten Sprache basiert. Sie können so konfigurieren CloudFront , dass Abfragezeichenfolgen an den Ursprung weitergeleitet und auf der Grundlage des Sprachparameters zwischengespeichert werden. Wenn Sie Ihren Webserver so konfigurieren, dass er die Version einer bestimmten Seite zurückgibt, die der ausgewählten Sprache entspricht, CloudFront speichert er jede Sprachversion separat im Cache, basierend auf dem Wert des Parameters für die Sprachabfrage.

Wenn in diesem Beispiel die Hauptseite Ihrer Website lautet, führen die folgenden fünf Anfragen CloudFront dazumain.html, dass fünfmal zwischengespeichert wird, und main.html zwar einmal für jeden Wert des Zeichenfolgenparameters für die Sprachabfrage:

  • https://d111111abcdef8.cloudfront.net/main.html?language=de

  • https://d111111abcdef8.cloudfront.net/main.html?language=en

  • https://d111111abcdef8.cloudfront.net/main.html?language=es

  • https://d111111abcdef8.cloudfront.net/main.html?language=fr

  • https://d111111abcdef8.cloudfront.net/main.html?language=jp

Beachten Sie Folgendes:

  • Einige HTTP-Server verarbeiten keine Abfragezeichenfolgeparameter und geben daher nicht unterschiedliche Versionen eines Objekts auf der Grundlage der Parameterwerte zurück. Wenn Sie für diese Ursprünge die Weiterleitung von Abfragezeichenfolgenparametern an den Ursprung konfigurieren CloudFront , werden CloudFront trotzdem basierend auf den Parameterwerten zwischengespeichert, obwohl der Ursprung CloudFront für jeden Parameterwert identische Versionen des Objekts zurückgibt.

  • Damit Abfragezeichenfolgeparameter wie im obigen Beispiel beschrieben mit den Sprachen funktionieren, müssen Sie das Zeichen & als Trennzeichen zwischen den Abfragezeichenfolgeparametern verwenden. Wenn Sie ein anderes Trennzeichen verwenden, erhalten Sie möglicherweise unerwartete Ergebnisse, je nachdem, welche Parameter Sie angeben, um sie als Grundlage für das Zwischenspeichern CloudFront zu verwenden, und von der Reihenfolge, in der die Parameter in der Abfragezeichenfolge erscheinen.

    Die folgenden Beispiele zeigen, was passiert, wenn Sie ein anderes Trennzeichen verwenden und so konfigurieren CloudFront , dass der Cache nur auf der Grundlage des Parameters zwischengespeichert wird: color

    • In der folgenden Anfrage werden Ihre Inhalte basierend auf dem Wert des color Parameters CloudFront zwischengespeichert, der Wert wird jedoch als rot CloudFront interpretiert; size=large:

      https://d111111abcdef8.cloudfront.net/images/image.jpg?color=red;size=large

    • In der folgenden Anfrage werden Ihre Inhalte CloudFront zwischengespeichert, die Zwischenspeicherung basiert jedoch nicht auf den Parametern der Abfragezeichenfolge. Das liegt daran, dass Sie das Zwischenspeichern CloudFront auf der Grundlage des color Parameters konfiguriert haben, die folgende Zeichenfolge jedoch so CloudFront interpretiert haben, dass sie nur einen size Parameter enthält, der den Wert large; color=red hat:

      https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large;color=red

Sie können eine CloudFront der folgenden Optionen konfigurieren:

  • Keine Abfragezeichenfolge an den Ursprung weiterleiten. Wenn Sie keine Abfragezeichenfolgen weiterleiten, wird der Cache CloudFront nicht auf der Grundlage von Abfragezeichenfolgenparametern zwischengespeichert.

  • Abfragezeichenfolgen an den Ursprung weiterleiten und auf der Grundlage aller Parameter in der Abfragezeichenfolge zwischenspeichern.

  • Abfragezeichenfolgen an den Ursprung weiterleiten und auf der Grundlage spezifischer Parameter in der Abfragezeichenfolge zwischenspeichern.

Weitere Informationen finden Sie unter Optimieren Sie das Caching.

Konsolen- und API-Einstellungen für die Weiterleitung und Zwischenspeicherung von Abfragezeichenfolgen

Informationen zur Konfiguration der Weiterleitung und Zwischenspeicherung von Abfragezeichenfolgen in der CloudFront Konsole finden Sie in Referenz zu Verteilungseinstellungen den folgenden Einstellungen unter:

Informationen zur Konfiguration der Weiterleitung und Zwischenspeicherung von Abfragezeichenfolgen mit der CloudFront API finden Sie unter CachePolicyund OriginRequestPolicyin der Amazon CloudFront API-Referenz.

Optimieren Sie das Caching

Wenn Sie CloudFront den Cache auf der Grundlage von Abfragezeichenfolgenparametern konfigurieren, können Sie die folgenden Schritte ausführen, um die Anzahl der Anfragen zu reduzieren, die an CloudFront Ihren Ursprung weitergeleitet werden. Wenn CloudFront Edge-Standorte Objekte bereitstellen, reduzieren Sie die Belastung Ihres Ursprungsservers und reduzieren die Latenz, da Objekte von Standorten aus bedient werden, die sich näher an Ihren Benutzern befinden.

Zwischenspeichern auf der ausschließlichen Grundlage von Parametern, für die Ihr Ursprung verschiedene Versionen eines Objekts zurückgibt

Für jeden Abfragezeichenfolgenparameter, an den Ihre Webanwendung CloudFront weiterleitetCloudFront, werden Anfragen für jeden Parameterwert an Ihren Ursprung weitergeleitet und für jeden Parameterwert eine separate Version des Objekts zwischengespeichert. Dies gilt auch, wenn Ihr Ursprung unabhängig vom Parameterwert immer dasselbe Objekt zurückgibt. Bei mehreren Parametern multiplizieren sich die Anzahl der Anfragen und die Anzahl der Objekte.

Wir empfehlen Ihnen, den Cache so CloudFront zu konfigurieren, dass er nur auf der Grundlage der Abfragezeichenfolgenparameter zwischengespeichert wird, für die Ihr Origin unterschiedliche Versionen zurückgibt, und dass Sie die Vorteile des Cachings anhand der einzelnen Parameter sorgfältig abwägen. Nehmen wir beispielsweise an, dass Sie eine Einzelhandels-Website besitzen. Sie haben Bilder einer Jacke in sechs verschiedenen Farben und es gibt die Jacke in zehn verschiedenen Größen. Die Bilder, die Sie von der Jacke haben, zeigen die verschiedenen Farben, jedoch nicht die verschiedenen Größen. Um das Caching zu optimieren, sollten Sie so konfigurieren, CloudFront dass der Cache nur anhand des Farbparameters und nicht anhand des Größenparameters zwischengespeichert wird. Dadurch steigt die Wahrscheinlichkeit, dass eine Anfrage aus dem Cache bearbeitet werden CloudFront kann, was die Leistung verbessert und die Belastung Ihres Ursprungsservers reduziert.

Parameter immer in der gleichen Reihenfolge auflisten

Die Reihenfolge der Parameter in Abfragezeichenfolgen ist wichtig. Im folgenden Beispiel sind die Abfragezeichenfolgen identisch, abgesehen davon, dass die Parameter eine andere Reihenfolge aufweisen. Dies führt CloudFront dazu, dass zwei separate Anfragen für image.jpg an Ihren Ursprung weitergeleitet und zwei separate Versionen des Objekts zwischengespeichert werden:

  • https://d111111abcdef8.cloudfront.net/images/image.jpg?color=red&size=large

  • https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large&color=red

Wir empfehlen, Parameternamen immer in der gleichen Reihenfolge aufzulisten, beispielsweise in alphabetischer Reihenfolge.

Immer dieselbe Schreibweise für Parameternamen und -werte verwenden

CloudFront berücksichtigt die Groß-/Kleinschreibung von Parameternamen und -werten beim Zwischenspeichern auf der Grundlage von Abfragezeichenfolgenparametern. Im folgenden Beispiel sind die Abfragezeichenfolgen identisch, abgesehen von der Schreibweise der Parameternamen und -werte. Dies führt CloudFront dazu, dass vier separate Anfragen für image.jpg an Ihren Ursprung weitergeleitet und vier separate Versionen des Objekts zwischengespeichert werden:

  • https://d111111abcdef8.cloudfront.net/images/image.jpg?color=red

  • https://d111111abcdef8.cloudfront.net/images/image.jpg?color=Red

  • https://d111111abcdef8.cloudfront.net/images/image.jpg?Color=red

  • https://d111111abcdef8.cloudfront.net/images/image.jpg?Color=Red

Wir empfehlen, konsistent dieselbe Schreibweise für Parameternamen und -werte zu verwenden, beispielsweise nur Kleinbuchstaben.

Keine Parameternamen verwenden, die mit signierten URLs in Konflikt stehen

Wenn Sie signierte URLs verwenden, um den Zugriff auf Ihre Inhalte einzuschränken (wenn Sie Ihrer Distribution vertrauenswürdige Unterzeichner hinzugefügt haben), CloudFront entfernt die folgenden Abfragezeichenfolge-Parameter, bevor der Rest der URL an Ihren Ursprung weitergeleitet wird:

  • Expires

  • Key-Pair-Id

  • Policy

  • Signature

Wenn Sie signierte URLs verwenden und so konfigurieren möchten, dass Abfragezeichenfolgen CloudFront an Ihren Ursprung weitergeleitet werden, können Ihre eigenen Abfragezeichenfolgenparameter nicht mitExpires, Key-Pair-IdPolicy, oder Signature benannt werden.

Abfragezeichenfolgenparameter und CloudFront Standardprotokolle (Zugriffsprotokolle)

Wenn Sie die Protokollierung aktivieren, wird die vollständige URL einschließlich der Parameter für die Abfragezeichenfolge CloudFront protokolliert. Dies gilt unabhängig davon, ob Sie die Konfiguration für die Weiterleitung von Abfragezeichenfolgen an den Ursprung konfiguriert CloudFront haben. Weitere Hinweise zur CloudFront Protokollierung finden Sie unterStandardprotokolle (Zugriffsprotokolle) konfigurieren und verwenden.