Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Cache-Verhalten verwalten

Firebase Hosting verwendet ein leistungsstarkes globales CDN, um Ihre Site so schnell wie möglich zu gestalten.

Alle angeforderten statischen Inhalte werden automatisch auf dem CDN zwischengespeichert . Wenn Sie den Inhalt Ihrer Site erneut bereitstellen, löscht Firebase Hosting automatisch alle zwischengespeicherten statischen Inhalte im gesamten CDN bis zur nächsten Anforderung.

Da Cloud-Funktionen und Cloud-Run-Dienste Inhalte dynamisch generieren, kann der Inhalt für eine bestimmte URL abhängig von Benutzereingaben oder der Identität des Benutzers variieren. Um dies zu berücksichtigen, werden Anforderungen, die vom Backend-Code verarbeitet werden, standardmäßig nicht im CDN zwischengespeichert.

Sie können jedoch das Caching-Verhalten für dynamische Inhalte konfigurieren . Wenn eine Funktion beispielsweise nur regelmäßig neuen Inhalt generiert, können Sie Ihre App beschleunigen, indem Sie den generierten Inhalt für mindestens einen kurzen Zeitraum zwischenspeichern.

Sie können möglicherweise auch die Kosten für die Funktionsausführung senken, da der Inhalt nicht über eine ausgelöste Funktion, sondern vom CDN bereitgestellt wird. Weitere Informationen zur Optimierung der Funktionsausführung und der Dienste finden Sie in der Dokumentation zu Cloud-Funktionen und Cloud- Ausführung.

Weitere Informationen zum Caching-Verhalten finden Sie in der Webentwicklerdokumentation von Google.

Stellen Sie die Cache-Steuerung ein

Das Hauptwerkzeug, mit dem Sie den Cache für dynamischen Inhalt verwalten, ist der Cache-Control Header. Durch Konfigurieren dieses Headers können Sie sowohl dem Browser als auch dem CDN mitteilen, wie lange Ihr Inhalt zwischengespeichert werden kann. In Ihrer Funktion stellen Sie die Cache-Control :

res.set('Cache-Control', 'public, max-age=300, s-maxage=600');

In diesem Beispielkopf machen die Anweisungen drei Dinge:

  • public - Markiert den Cache als public . Dies bedeutet, dass sowohl der Browser als auch die Zwischenserver (dh das CDN für Firebase-Hosting) den Inhalt zwischenspeichern können.

  • max-age - Gibt dem Browser und dem CDN an, wie viele Sekunden sie den Inhalt zwischenspeichern können. Nach Ablauf der festgelegten Zeit müssen der Browser und das CDN den Inhalt mit dem Ursprungsserver erneut validieren. Im Beispielheader erlauben wir dem Browser und dem CDN, den Inhalt fünf Minuten lang zwischenzuspeichern (siehe s-maxage unten für spezifische Steuerelemente für das CDN-Caching).

  • s-maxage - s-maxage die max-age Direktive nur für das CDN-Caching. teilt dem CDN mit, wie viele Sekunden der Inhalt zwischengespeichert werden kann. Nach Ablauf der festgelegten Zeit muss das CDN den Inhalt mit dem Ursprungsserver erneut validieren. Im Beispielheader überschreiben wir die Einstellung für das max-age für das CDN und lassen das CDN den Inhalt zehn Minuten lang zwischenspeichern.

s-maxage für max-age und s-maxage die Werte auf die längste Zeit ein, die Sie für Benutzer s-maxage , die veraltete Inhalte erhalten. Wenn eine Seite alle paar Sekunden wechselt, verwenden Sie einen kleinen Zeitwert. Andere Arten von Inhalten können jedoch sicher für Stunden, Tage oder sogar Monate zwischengespeichert werden.

Weitere Informationen zum Cache-Control Header finden Sie im Mozilla Developer Network und in der Dokumentation für Webentwickler von Google.

Wann werden zwischengespeicherte Inhalte bereitgestellt?

Der Browser und das CDN zwischenspeichern Ihre Inhalte basierend auf:

Variieren Sie die Header

Der Vary Header bestimmt, welche Anforderungsheader verwendet werden sollen, um eine angemessene Antwort bereitzustellen (ob der zwischengespeicherte Inhalt gültig ist oder ob der Inhalt mit dem Ursprungsserver erneut validiert werden soll).

Meistens müssen Sie sich keine Gedanken über den Vary Header machen. Firebase Hosting legt automatisch einen geeigneten Vary Header für Ihre Antwort für häufige Situationen fest. Dazu gehört, dass sichergestellt wird, dass alle von Ihnen verwendeten Sitzungscookies oder Autorisierungsheader Teil des Cache-Schlüssels sind, um versehentliche Inhaltslecks zu vermeiden.

In einigen fortgeschrittenen Anwendungsfällen haben Sie möglicherweise andere Header, die Sie benötigen, um den Cache zu beeinflussen. In diesem Fall können Sie einfach den Vary Header für Ihre Antwort festlegen:

res.set('Vary', 'Accept-Encoding, X-My-Custom-Header');

Mit diesen Einstellungen werden zwei ansonsten identische Anforderungen mit unterschiedlichen X-My-Custom-Header Headern separat zwischengespeichert.

Cookies verwenden

Wenn Sie Firebase Hosting zusammen mit Cloud-Funktionen oder Cloud Run verwenden, werden Cookies im Allgemeinen von eingehenden Anforderungen entfernt. Dies ist erforderlich, um ein effizientes CDN- Cache-Verhalten zu ermöglichen . Nur das speziell benannte __session Cookie darf zur Ausführung Ihrer App weitergeleitet werden.

Wenn vorhanden, wird das __session Cookie automatisch in den Cache-Schlüssel aufgenommen. __session bedeutet, dass zwei Benutzer mit unterschiedlichen Cookies nicht die zwischengespeicherte Antwort des anderen Benutzers erhalten können. Verwenden Sie das __session Cookie nur, wenn Ihre App je nach Benutzerberechtigung unterschiedliche Inhalte __session .