Eine im Cache speicherbare Antwort ist eine HTTP-Antwort, die von Cloud CDN gespeichert und schnell abgerufen werden kann. Dies ermöglicht schnellere Ladezeiten. Nicht alle HTTP-Antworten können im Cache gespeichert werden.
Cache-Modi
Mit Cache-Modi können Sie die Faktoren steuern, die bestimmen, ob Cloud CDN Ihre Inhalte im Cache speichert.
Cloud CDN bietet drei Cache-Modi, mit denen definiert wird, wie Antworten im Cache gespeichert werden, ob Cloud CDN die vom Ursprung gesendeten Cache-Anweisungen berücksichtigt und wie Cache-TTLs angewendet werden.
Die verfügbaren Cache-Modi sind in der folgenden Tabelle aufgeführt:
| Cache-Modus | Verhalten |
|---|---|
CACHE_ALL_STATIC |
Speichert erfolgreiche Antworten mit statischen Inhalten, die andernfalls nicht im Cache speicherbar sind, automatisch im Cache.
Ursprungantworten, die gültige Caching-Anweisungen festlegen, werden ebenfalls im Cache gespeichert. Dies ist das Standardverhalten für Cloud CDN-fähige Backends, die mit der Google Cloud CLI oder der REST API erstellt wurden. |
USE_ORIGIN_HEADERS |
Erfordert Ursprungsantworten, um gültige Cache-Anweisungen und gültige Caching-Header festzulegen. Erfolgreiche Antworten ohne diese Anweisungen werden vom Ursprung weitergeleitet. |
FORCE_CACHE_ALL |
Erfolgreiche Antworten werden bedingungslos gespeichert, wodurch die vom Ursprung festgelegten Cache-Anweisungen überschrieben werden. Dieser Modus ist nicht geeignet, wenn das Backend private, nutzerspezifische (mit einem Nutzer verknüpfte) Inhalte wie dynamische HTML- oder API-Antworten bereitstellt. |
Fehlerantworten können im Cache gespeichert werden, auch wenn keine gültigen Cache-Anweisungen vorhanden sind.
Bevor Sie den Cache-Modus auf FORCE_CACHE_ALL setzen, sollten Sie Folgendes beachten:
Für signierte URLs oder signierte Cookies überschreibt
FORCE_CACHE_ALLdas Höchstalter, das in der Google Cloud Console über die Einstellung Höchstalter der Cache-Einträge oder die Optiongcloud --signed-url-cache-max-ageangegeben wurde.FORCE_CACHE_ALLändert die Gültigkeitsdauer (TTL) aller zuvor im Cache gespeicherten Inhalte. Diese Änderung kann dazu führen, dass einige Einträge, die zuvor als aktuell betrachtet wurden (da sie längere TTLs aus Ursprungsheadern haben), als veraltet gelten und einige Einträge, die zuvor als veraltet betrachtet wurden, als aktuell angesehen werden.FORCE_CACHE_ALLüberschreibt Cache-Anweisungen (Cache-ControlundExpires), jedoch nicht die anderen Antwortheader. Insbesondere kann einVary-Header das Caching unterdrücken, auch wenn der Cache-ModusFORCE_CACHE_ALList. Weitere Informationen finden Sie unter Vary-Header.
Eine Anleitung zum Einrichten finden Sie unter Cache-Modus festlegen.
Statischer Inhalt
Statische Inhalte sind immer identisch, selbst wenn von unterschiedlichen Nutzern darauf zugegriffen wird. Die CSS, mit der Sie das Design Ihrer Website gestalten, sowie die JavaScript, um die Interaktivität sowie Video- und Bildinhalte bereitzustellen, ändern sich üblicherweise nicht für jeden Nutzer für eine bestimmte URL (Cache-Schlüssel) und daher lohnt es sich, dass diese an verschiedenen Orten im globalen Edge-Netzwerk von Cloud CDN gespeichert werden.
Wenn Sie den Cache-Modus auf CACHE_ALL_STATIC setzen und eine Antwort keine expliziten Caching-Anweisungen in Cache-Control- oder Expires-Headern hat, speichert Cloud CDN diese Antwort automatisch für Folgendes im Cache:
- Web-Assets, einschließlich CSS (
text/css), JavaScript (application/javascript) und alle Webschriftarten, einschließlich WOFF2 (font/woff2). - Bilder, einschließlich JPEG (
image/jpg) und PNG (image/png). - Videos, einschließlich H.264, H.265 und MP4 (
video/mp4) - Audiodateien, darunter MP3 (
audio/mpeg) und MP4 (audio/mp4) - Formatierte Dokumente, einschließlich PDF (
application/pdf).
Die folgende Tabelle enthält eine Zusammenfassung.
| Kategorie | MIME-Typen |
|---|---|
| Web-Assets | text/css text/ecmascript text/javascript application/javascript |
| Schriftarten | Alle Content-Type, die mit font/* übereinstimmen |
| Images | Alle Content-Type, die mit image/* übereinstimmen |
| Videos | Alle Content-Type, die mit video/* übereinstimmen |
| Ton | Alle Content-Type, die mit audio/* übereinstimmen |
| Formatierte Dokumenttypen | application/pdf und application/postscript |
Cloud CDN prüft den HTTP-Antwortheader Content-Type, der den MIME-Typ des bereitgestellten Inhalts widerspiegelt.
Wichtige Hinweise:
Die Webserversoftware Ihres Ursprungs muss den
Content-Typefür jede Antwort festlegen. Viele Webserver legen automatisch den HeaderContent-Typefest, einschließlich NGINX, Varnish und Apache.Cloud Storage legt den
Content-Type-Header automatisch fest, wenn Sie die Google Cloud Console oder die Google Cloud CLI zum Hochladen von Inhalten verwenden.Cloud Storage stellt Cloud CDN immer einen
Cache-Control-Header zur Verfügung. Wenn kein Wert explizit ausgewählt wird, wird ein Standardwert gesendet. Daher werden alle erfolgreichen Cloud Storage-Antworten gemäß den Cloud Storage-Standardwerten im Cache gespeichert, sofern Sie die Cachesteuerungs-Metadaten für Objekte in Cloud Storage nicht explizit anpassen oder denFORCE_CACHE_ALL-Modus verwenden, um die von Cloud Storage gesendeten Werte zu überschreiben.Wenn Sie die Inhaltstypen
text/htmlundapplication/jsonim Cache speichern möchten, müssen Sie explizitCache-Control-Header in der Antwort festlegen und dabei darauf achten, dass Sie nicht unbeabsichtigt die Daten eines Nutzers im Cache speichern und für alle Nutzer bereitstellen.
Wenn eine Antwort aufgrund ihres MIME-Typs cachefähig ist, aber einen Cache-Control-Antwortheader private oder no-store oder einen Set-Cookie-Header hat, wird sie nicht im Cache gespeichert. Weitere Informationen finden Sie unter Regeln für die Cachefähigkeit.
Andere Inhaltstypen wie HTML (text/html) und JSON (application/json) werden für erfolgreiche Antworten nicht standardmäßig im Cache gespeichert. Diese Antworttypen sind in der Regel dynamisch (nutzerbasiert). Beispiele sind die Daten von Einkaufswagen, Produktseiten mit Nutzerpersonalisierung und authentifizierte API-Antworten. Negatives Caching kann, sofern aktiviert, dazu führen, dass sie für bestimmte Statuscodes dennoch im Cache gespeichert werden.
Cloud CDN verwendet keine Dateiendungen im URL-Pfad, um zu bestimmen, ob eine Antwort im Cache gespeichert werden kann, da sich viele gültige, im Cache speicherbare Antworten nicht in URLs finden lassen.
Im Cache speicherbare Inhalte
Cloud CDN speichert Antworten im Cache, die alle Anforderungen in diesem Abschnitt erfüllen. Einige dieser Anforderungen sind in RFC 7234 spezifiziert, während andere Cloud CDN-spezifisch sind.
Cloud CDN kann den genauen Satz von Bedingungen, unter denen Inhalte im Cache gespeichert werden, regelmäßig ändern. Wenn Sie verhindern möchten, dass Cloud CDN Ihre Inhalte explizit im Cache speichert, befolgen Sie die Richtlinien in RFC 7234, um zu bestimmen, wie eine garantierte, nicht Cache-fähige Antwort angegeben wird. Weitere Informationen finden Sie im Abschnitt Nicht im Cache speicherbare Inhalte, die auf ursprünglichen Headern basieren.
Cloud CDN speichert Antworten im Cache, wenn alle folgenden Bedingungen erfüllt sind.
| Attribut | Anforderung |
|---|---|
| Bereitgestellt von | Backend-Dienst, Backend-Bucket oder ein externes Backend mit aktiviertem Cloud CDN |
| Als Antwort auf | GET-Anfrage |
| Statuscode |
|
| Aktualität | Die Antwort hat einen Bei cachefähigen Antworten ohne Alter (z. B. mit Wenn im Cache-Modus Im Cache-Modus Wenn negatives Caching aktiviert ist und der Statuscode mit einem übereinstimmt, für den das negative Caching eine TTL angibt, kann die Antwort im Cache gespeichert werden, auch wenn keine explizite Cache-Anweisung vorhanden ist. |
| Inhalt | Bei HTTP/1-Ursprüngen muss die Antwort einen gültigen Header Bei Ursprüngen, die neuere HTTP-Protokollversionen (HTTP/2 und höher) verwenden, muss die Antwort solche Header nicht enthalten. |
| Größe | Kleiner oder gleich der maximalen Größe.
Bei Antworten mit Größen zwischen 10 MiB und 100 GiB finden Sie unter Bytebereichsanfragen zusätzliche Einschränkungen für die Cache-Fähigkeit. |
Bei Cloud Storage-Backend-Buckets sollten Sie die folgenden zusätzlichen Empfehlungen beachten:
Machen Sie Ihren Bucket öffentlich lesbar. Wir empfehlen diesen Ansatz für öffentliche Inhalte. Mit dieser Einstellung kann jeder im Internet Ihre Objekte und ihre Metadaten anzeigen und auflisten. ACLs sind davon ausgenommen. Sie sollten bestimmte Buckets für öffentliche Objekte zuweisen.
Verwenden Sie verwaltete Ordner, um einen Teil Ihres Buckets öffentlich lesbar zu machen.
Machen Sie einzelne Objekte öffentlich lesbar. Wir empfehlen diese Methode nicht, da sie ein Cloud Storage-spezifisches Legacy-Berechtigungssystem verwendet.
Speichern Sie das Objekt nicht in einem Bucket, für den Anforderer bezahlt aktiviert ist, oder in einem Virtual Private Cloud-Dienstperimeter.
Verschlüsseln Sie das Objekt nicht mit vom Kunden verwalteten Verschlüsselungsschlüsseln oder vom Kunden bereitgestellten Verschlüsselungsschlüsseln.
Wenn ein Objekt öffentlich ist und keine Cache-Control-Metadaten angegeben sind, weist Cloud Storage dem Objekt standardmäßig einen Cache-Control: public, max-age=3600-Header zu. Sie können verschiedene Werte mit