Was ist Time to Live (TTL)?
Im Kontext eines CDN wie Fastly ist der TTL-Wert die Dauer, für die ein bestimmtes Objekt im Cache verbleibt. TTL wird manchmal auch als „Frischelebensdauer“ eines Objekts bezeichnet, da das Objekt nach Ablauf der TTL veraltet ist, was bedeutet, dass wahrscheinlich eine neuere, „frischere“ Version des Objekts verfügbar ist, die den Kunden bereitgestellt werden kann.
Wie funktioniert TTL?
Jedes Objekt enthält HTTP-Header, die verwendet werden, um Informationen zwischen dem Client und dem Origin-Server bei der Anfrage und der Antwort zu übertragen. Sie können bestimmte HTTP-Header für die Antwort festlegen, um zu steuern, welcher Inhalt zwischengespeichert wird und welche TTL er hat. Mit Headern wie Cache-Control und Expires können Sie festlegen, wie lange das Objekt im Cache maximal zur Beantwortung von Anfragen verwendet wird, ohne den Origin-Server zu konsultieren. Nach Ablauf der TTL kann das Objekt im Speicher behalten werden, aber es wird nicht zur Beantwortung von Anfragen verwendet, bis es mit dem Ursprung erneut validiert werden kann.
Warum ist die TTL wichtig?
Die Bereitstellung von Inhalten verursacht Kosten, sowohl in Bezug auf Ihre Egress-Kosten, also die Kosten, die Hosting-Anbieter für das Verschieben von Inhalten aus dem Speicher berechnen, als auch in Bezug auf die Latenz für Ihre Kunden, also die Zeit, die sie mit dem Warten auf Ihre Inhalte verbringen.
Ein strategischer Umgang mit Ihrer TTL kann Ihnen helfen, beide Kosten zu verwalten. Zum Beispiel könnten Sie sich entscheiden, statischen Inhalten eine höhere TTL zuzuweisen, da diese Inhalte typischerweise relativ unverändert bleiben und es in Ihrem Ursprung keine neuere Version geben wird. Denken Sie an Bilder, CSS- oder JavaScript-Dateien. Durch die längere Speicherung dieser Inhalte im Cache können Sie weniger Zugriffe auf Ihre Quelle durchführen und somit die Egress-Kosten reduzieren. Und da der Inhalt aus dem Cache bereitgestellt wird, wird die Latenzzeit für Ihre Kunden verringert.
Auf der anderen Seite sollten dynamische Inhalte, also Inhalte, die sich in unvorhersehbaren Intervallen ändern, wahrscheinlich eine niedrigere TTL haben. Dadurch wird sichergestellt, dass stets die aktuellsten Informationen bereitgestellt werden. Beispielsweise sind aktuelle Nachrichten, nutzergenerierte Inhalte und der aktuelle Lagerbestand eines Geschäfts allesamt Arten von Inhalten, die sich unvorhersehbar ändern. Das Festlegen der richtigen TTL hilft Ihnen, die Bedürfnisse Ihrer Nutzer mit den Kosten Ihrer Geschäftstätigkeit in Einklang zu bringen.
Best Practices für TTL
Das Festlegen der richtigen TTL hilft Ihnen, Performance, Kosten und Verfügbarkeit in Einklang zu bringen.
Eine höhere TTL bedeutet weniger Anfragen an Ihren Origin-Server für „frische“ Inhalte.
Eine niedrigere TTL bedeutet, dass das zwischengespeicherte Objekt schneller veraltet und Aktualisierungen aus dem Cache häufiger durchgeführt werden.
Verwenden Sie eine höhere TTL für statische Inhalte, die wahrscheinlich keine großen Änderungen erfahren werden – Bilder, CSS, JavaScript-Dateien. Verwenden Sie eine niedrigere TTL für dynamische Inhalte, die sich in unvorhersehbaren Intervallen ändern. Dadurch wird sichergestellt, dass Ihren Nutzern immer aktuelle Inhalte zur Verfügung stehen.
Da CDNs wie Fastly den Cache eines Endnutzers im Webbrowser nicht invalidieren können, ist das Löschen von Objekten aus dem Cache im Allgemeinen einfacher und liegt mehr in Ihrer Kontrolle als das Leeren der Caches der Webbrowser der Nutzer. Aus diesem Grund kann es sinnvoll sein, unterschiedliche TTLs für Inhalte im Cache und in den Webbrowsern der Nutzer festzulegen.
Sie können mithilfe von Surrogate-Control-HTTP-Headern, die vom W3C definiert wurden, unterschiedliche TTLs für Cache und Webbrowser festlegen. Verwenden Sie diese HTTP-Header, um eine lange TTL für Elemente im Cache festzulegen, aber eine kürzere TTL für Nutzer, die dieses Objekt in einem Webbrowser anzeigen.
TTL in Fastly
Es gibt keinen einheitlichen Ansatz für das Caching – die Bedürfnisse jedes Einzelnen können leicht unterschiedlich sein. In einem realen Szenario hängen Ihre Caching-Anforderungen von verschiedenen Faktoren ab, und Sie möchten die Flexibilität haben, zu entscheiden, wie lange statische Inhalte im Vergleich zu dynamischem Inhalt zwischengespeichert werden sollen.
Da es so einfach ist, einen Fastly-Service zu bereinigen – sei es für eine einzelne URL, eine Gruppe von getaggten Ressourcen oder einen ganzen Service-Cache – können Sie beim Speichern von Elementen im Fastly-Cache eine lange TTL festlegen. Eine lange TTL erhöht Ihre Cache-Hitrate und die Reaktionsfähigkeit Ihrer Website für Endnutzer, und wenn Sie für neue Inhalte eine Bereinigung durchführen müssen, dauert dies in der Regel nur wenige Sekunden.
Wenn Sie eine variable Kontrolle für Ihre TTL benötigen, bietet Fastly mehrere Optionen, darunter:
Konfigurieren einer globalen Standard-TTL, auch als Ersatz-TTL bezeichnet, um alle Objekte konsistent zwischenzuspeichern, selbst wenn Sie mehrere Ursprünge oder Serveranwendungen mit inkonsistenten TTL-Einstellungen haben.
Verwendung von HTTP-Headern, um die Kontrolle darüber zu behalten, wie lange Inhalte im Browser eines Nutzers zwischengespeichert werden.
Aktivieren der Bereitstellung veralteter Inhalte für den Fall, dass Ihre Inhalte ablaufen, der Ursprung jedoch nicht für eine erneute Validierung erreicht werden kann.
Nächste Schritte
Sehen Sie sich unseren Leitfaden zu den Best Practices für das Caching an, um mehr darüber zu erfahren, wie verschiedene HTTP-Header die TTL und andere Caching-Verhaltensweisen beeinflussen.
Mehr über das Fastly CDN