

Es gibt ein berühmtes Zitat: „Es gibt nur zwei schwierige Dinge in der Informatik: Cache-Invalidierung und Dinge zu benennen.“ Während dieser Satz auf humorvolle Weise die Komplexität des Cachings betont, unterstreicht er auch, wie wichtig es ist, Caching zu beherrschen – besonders bei der Arbeit mit CDNs (Content Delivery Networks).
Wie CDNs funktionieren und warum Sie sie brauchen
Der Hauptzweck eines CDNs besteht darin, Webinhalte basierend auf dem geografischen Standort des Nutzers von verschiedenen Servern auszuliefern. CDNs halten Kopien von Daten (Bilder, große JavaScript-Dateien usw.) auf mehreren Hochleistungsservern rund um den Globus bereit. Indem die Daten von dem Server bereitgestellt werden, der dem tatsächlichen Nutzer am nächsten ist, gewährleisten sie einen blitzschnellen Zugriff auf Inhalte, verbessern die User Experience und reduzieren Latenzen.
Es gibt verschiedene Möglichkeiten, CDNs zu konfigurieren, aber dieser Beitrag beleuchtet das sogenannte „Reverse-Proxy“-Setup. In diesem Szenario prüft das CDN bei einer Benutzeranfrage zunächst seinen Cache. Wenn der Inhalt vorhanden ist (ein Cache-Hit), wird er vom nächstgelegenen Server ausgeliefert. Wenn nicht (ein Cache-Miss), ruft das CDN ihn vom Ursprungsserver (Ihrem Server) ab, speichert ihn im Cache und liefert ihn dann an den Nutzer aus.
Zu den bekanntesten CDNs gehören:
- Cloudflare: Bekannt für seine Sicherheitsfunktionen und ein umfassendes kostenloses Angebot.
- CloudFront: Amazons robuste CDN-Lösung, die sich nahtlos in andere AWS-Dienste integriert.
- Fastly: Geschätzt für Echtzeit-Cache-Analysen und schnelle Content-Auslieferung.
- Akamai: Eines der ältesten und größten CDNs, das vor allem Top-Tier-Unternehmen bedient.
Die Macht von Cache-Control-Headern bei CDNs
Ohne geeignete Cache-Control-Header kontaktiert ein CDN möglicherweise häufig den Ursprungsserver oder liefert veraltete Inhalte aus. Beide Szenarien machen die Hauptvorteile eines CDNs zunichte: Geschwindigkeit und reduzierte Last auf dem Ursprungsserver. Cache-Control-Header geben dem CDN Anweisungen, wie und wie lange Inhalte zwischengespeichert werden sollen.
Cache-Control entschlüsselt: Die richtige Anwendung
Es gibt eine Fülle von Cache-Control-Direktiven, aber hier sind die wichtigsten:
- max-age: Gibt die maximale Zeitdauer (in Sekunden) an, die der Inhalt im Cache verbleiben darf.
- public: Zeigt an, dass jeder Cache, einschließlich CDNs, den Inhalt speichern darf.
- private: Die Antwort ist spezifisch für einen einzelnen Nutzer und sollte nicht von geteilten Caches (Shared Caches) wie CDNs gespeichert werden, darf aber im Browser-Cache liegen.
- no-cache / no-store: Verbietet das Caching gänzlich. Nutzen Sie dies z. B. für Echtzeit-API-Antworten.
Es ist wichtig zu beachten, dass das Verlassen auf no-cache oder no-store für semistatische Inhalte (z. B. Bilder, die sich häufig ändern) nicht ideal ist. Obwohl sie wie eine sichere Wahl erscheinen, können sie genau die Vorteile, die CDNs bieten, zunichte machen, indem sie jede Anfrage an den Server weiterleiten und durch den zusätzlichen Hop nur Latenz hinzufügen.
Wie Etags funktionieren
Etags, oder Entity Tags, sind eindeutige Identifikatoren, die spezifischen Versionen von Web-Ressourcen zugewiesen werden. Wenn ein Nutzer eine Ressource zum ersten Mal anfordert, liefert der Server den Inhalt mit einem Etag. Bei nachfolgenden Anfragen sendet der Client dieses Etag zurück und fragt im Wesentlichen: „Hat sich der Inhalt seit diesem Tag geändert?“ Wenn er unverändert ist, antwortet der Server mit dem Status „Not Modified“ (304), sodass der Client seine gespeicherte Version verwendet. Falls er sich unterscheidet, sendet der Server den aktualisierten Inhalt mit einem neuen Etag. Dieser Mechanismus spart Bandbreite, gewährleistet eine effiziente Inhaltsprüfung und hilft, den Cache aktuell zu halten.
Die Eleganz von must-revalidate und proxy-revalidate
Anstelle der strikten no-cache oder no-store Anweisungen sind die Direktiven must-revalidate und proxy-revalidate nuancierter und vorteilhafter.
- must-revalidate: Es schreibt vor, dass Caches, sobald ein Inhalt veraltet ist (d. h. max-age überschritten hat), beim Ursprungsserver auf Updates prüfen müssen, bevor sie ihn ausliefern. Dies stellt aktuelle Inhalte sicher, ohne dass bei jedem Aufruf geprüft werden muss.
- proxy-revalidate: Dies ähnelt must-revalidate, ist jedoch spezifisch für Shared Caches wie CDNs. In Kombination mit Etags kann das CDN schnell feststellen, ob sich Inhalte geändert haben oder ob die zwischengespeicherte Version noch relevant ist.
Die kombinierte Nutzung von must-revalidate, proxy-revalidate und Etags schafft einen optimierten Prozess zur Inhaltsbereitstellung. CDNs liefern Inhalte schnell aus, aber wenn Inhalte veraltet sein könnten, stellen diese Header sicher, dass das CDN effizient verifiziert und bei Bedarf aktualisiert.

Fazit
Während CDNs die Web-Performance drastisch verbessern können, hängt ihre Effizienz vom bedachten Einsatz von Cache-Control-Headern ab. Durch die Nutzung von Direktiven wie must-revalidate und proxy-revalidate können Entwickler das volle Potenzial von CDNs ausschöpfen und gleichzeitig sicherstellen, dass Inhalte für die Nutzer frisch und relevant bleiben.

Implementierung einer Custom RAG-Pipeline für technische Dokumente
In diesem Artikel untersuchen wir den Einsatz von Qdrant, gpt4o-mini für Embeddings und OCR sowie DSPy, um eine optimierte Retrieval Augmented Generation (RAG) Pipeline für technische Dokumentationen zu entwickeln.


Prototyping von Maschinen-Dashboards mit Node-RED
Ein schneller und einfacher Weg, um Dashboards für Maschinen in Ihrer Fertigung einzurichten.


