Zum Inhalt springen
DSGVO-konform. Gehostet in DE.
14 Tage kostenlos testen →
Uptime-MonitoringCachingCDN
Monitoring 14 Min. Lesezeit 16. Sept. 2026

Origin hinter dem CDN: Wenn der Cache den Ausfall verdeckt

Ein Uptime-Check kann grün melden, während der Ursprungsserver längst ausgefallen ist: Die Kante antwortet aus dem Cache. Wie Age und Cache-Status den Blindflug sichtbar machen und wie zwei getrennte Prüfpfade den Ausfall vor den Besuchern zeigen.

X

XICTRAQ

XICTRAQ

MonitoringCDNCachingVerfügbarkeit
35 %
der mobilen HTML-Anfragen laufen über ein CDN (Web Almanac 2025)
0,2 %
der Desktop-Anfragen setzen stale-if-error (Web Almanac 2021)
86.400 s
Vorgabe für CacheMaxExpire in mod_cache (Apache-Projekt)
Cache verdeckt den AusfallDrei Schichten, ein Signal: was die Prüfung sieht und was nichtBesuchersieht eine Seite, die geladen wirdAnfrageCDN-Kanteantwortet aus dem Vorrat, Age steigt200 aus Cachekein Abruf nötigUrsprungsserverliefert 503, wird aber nicht gefragtohne AntwortAlter der Antwortmax-age 600 s, stale-if-error 1200 sAge 9000 s600 s1800 sKante liefert weiter ausUrsprung antwortet nicht mehrAb 1800 s reicht der Vorrat nicht1800Sekunden blindes Fenster35 %der HTML-Anfragen laufen über ein CDN(Web Almanac 2025, mobile Anfragen)0,2 %der Anfragen setzen stale-if-error(Web Almanac 2021, Desktop)Quellen: RFC 5861, RFC 9111, RFC 9211, Web Almanac
Der Uptime-Check meldet 200, die Statusseite steht auf grün, und trotzdem ruft eine Kundin an: Bestellungen kommen nicht durch. Beides stimmt gleichzeitig. Die Prüfung hat eine Antwort bekommen, nur nicht vom Ursprungsserver, sondern von einem Zwischenspeicher, der eine ältere Kopie ausliefert. Das ist kein Defekt, sondern ausdrücklich vorgesehen: Ein Cache darf eine veraltete Antwort nur dann erzeugen, wenn er vom Ursprung getrennt ist oder wenn Client oder Ursprungsserver es erlaubt haben – und auch dann nicht, wenn eine Anweisung wie no-cache oder must-revalidate sie untersagt (RFC 9111). Wie lange dieses Fenster offen bleibt, entscheidet die Konfiguration – die Vorgabe für die maximale Verweildauer eines Dokuments liegt in mod_cache bei 86.400 Sekunden, also einem Tag (Apache-Projekt). Und ein CDN steht heute bei 35 Prozent der mobilen HTML-Anfragen zwischen Besucher und Ursprung (Web Almanac 2025). Wer nur eine Adresse prüft, prüft in diesen Fällen den Zwischenspeicher.

Was der grüne Haken tatsächlich beweist

Ein HTTP-Check beweist genau eine Sache: Unter der geprüften Adresse hat jemand mit einem Statuscode geantwortet. Wer diese Antwort geschickt hat, steht im Statuscode nicht drin. Liegt ein CDN davor, endet die Prüfung in der Regel an der nächstgelegenen Kante, und die Kante hat zwei Möglichkeiten – den Ursprung fragen oder aus dem eigenen Vorrat antworten. Der zweite Weg ist der schnellere und darum der übliche. Ein 200 sagt deshalb nichts darüber, ob die Anwendung dahinter noch läuft, ob die Datenbank erreichbar ist oder ob der Bestellprozess durchgeht.

Das ist keine Fehlfunktion des Caches, sondern seine Aufgabe. RFC 9111 beschreibt eine veraltete Antwort als eine, die zwar Ablaufinformationen trägt oder heuristisch berechnet werden darf, nach der Frischerechnung aber nicht mehr frisch ist. Erzeugen darf ein Cache sie trotzdem, aber nur unter einer von zwei Bedingungen: Er ist vom Ursprung getrennt, oder Client beziehungsweise Ursprungsserver haben es ausdrücklich erlaubt, etwa über die Erweiterungen aus RFC 5861. Untersagt eine Anweisung wie no-cache, must-revalidate, s-maxage oder proxy-revalidate die veraltete Antwort, bleibt sie auch in diesen Lagen verboten (RFC 9111). Die Kante tut also das, was ihr aufgetragen wurde – sie hält den Besucher von einem Fehlerbild fern. Nur hält sie damit gleichzeitig die Überwachung von der Lage fern.

  • Was der Check belegt: Die Adresse ist erreichbar, TLS steht, ein Statuscode kam zurück, die Antwortzeit lag im Rahmen.
  • Was der Check offenlässt: ob der Ursprungsserver an dieser Antwort beteiligt war und wie alt der ausgelieferte Inhalt ist.
  • Was daraus folgt: Ein Ausfall des Ursprungs bleibt so lange unsichtbar, wie der Vorrat der Kante reicht – bei ungünstiger Einstellung über Stunden.
  • Was das für die Erkennungszeit heißt: Das gewählte Prüfintervall verkürzt hier gar nichts, weil jede einzelne Prüfung dieselbe zwischengespeicherte Antwort erhält.

Age: der Kopf, der die Herkunft verrät

Es gibt ein Signal, das ohne Zusatzaufwand verfügbar ist und die Frage zur Hälfte beantwortet: den Age-Kopf. RFC 9111 formuliert seine Aussagekraft in zwei Sätzen, die getrennt gelesen werden müssen. Der erste: Ist ein Age-Feld vorhanden, wurde die Antwort für diese Anfrage nicht vom Ursprungsserver erzeugt oder bestätigt (RFC 9111). Der zweite schränkt die Umkehrung ein: Fehlt das Feld, folgt daraus nicht, dass der Ursprung kontaktiert wurde (RFC 9111). Ein Age-Wert ist damit ein belastbarer Nachweis für eine Cache-Antwort, sein Fehlen aber kein Nachweis für das Gegenteil.

Praktisch heißt das: Ein Age-Wert, der über mehrere Prüfungen hinweg gleichmäßig mitwächst, während sich sonst nichts ändert, ist die Signatur einer eingefrorenen Kopie. Solange der Ursprung antwortet, fällt der Wert nach jeder Auffrischung auf einen kleinen Betrag zurück. Wächst er dagegen stetig über die Frischedauer hinaus, liefert die Kante aus dem Vorrat – und das ist der Punkt, an dem eine Überwachung, die nur die Statuszeile liest, aufhört, etwas zu wissen. Der Wert allein ist noch kein Alarm, aber er ist die einzige Zahl im Standardsatz der Antwortköpfe, die überhaupt in diese Richtung zeigt.

Zwei Sätze, zwei verschiedene Schlüsse

Der Age-Kopf trägt seine Aussage nur in eine Richtung: Er beweist eine Cache-Antwort, sein Fehlen beweist keine Ursprungsantwort (RFC 9111). Wer eine Prüfregel darauf baut, formuliert sie deshalb als Nachweis und nicht als Ausschluss. Dasselbe Muster gilt für zwischengeschaltete Proxys bei der Auswertung der echten Besucher-IP: Ein gesetzter Kopf ist eine Information, ein fehlender Kopf ist keine.

Wie lang das blinde Fenster ist

Die Dauer der Blindheit lässt sich ausrechnen, sobald zwei Werte bekannt sind: die Frischedauer und die Nachfrist für Fehlerfälle. RFC 5861 führt dafür stale-if-error ein und fasst den Fehlerbegriff eng – gemeint ist jede Lage, die zu einem Statuscode 500, 502, 503 oder 504 führen würde (RFC 5861, Informational). Das Beispiel im Dokument ist so klar, dass es sich direkt übernehmen lässt: Eine Antwort mit max-age=600 und stale-if-error=1200 ist 600 Sekunden frisch und darf danach weitere 1200 Sekunden im Fehlerfall verwendet werden. Überschreitet das Alter 1800 Sekunden, muss der Cache die Fehlermeldung durchreichen (RFC 5861, Informational).

EinstellungWirkung auf den BlindflugDokumentierte VorgabeQuelle
max-ageDauer, in der die Kopie als frisch giltkeine, stammt aus der AntwortRFC 9111
stale-if-errorNachfrist, in der bei 5xx die alte Kopie weiterläuftkeine, stammt aus der AntwortRFC 5861 (Informational)
stale-while-revalidatealte Kopie sofort, Auffrischung im Hintergrundkeine, stammt aus der AntwortRFC 5861 (Informational)
Heuristische FrischeFrischedauer ohne jede Angabe geschätzttypischerweise 10 Prozent seit der letzten ÄnderungRFC 9111
CacheMaxExpireObergrenze, bis zu der ohne Rückfrage geliefert wird86.400 Sekunden, also ein TagApache-Projekt
CacheDefaultExpireFrist ohne Ablauf- und Änderungsdatum3.600 Sekunden, also eine StundeApache-Projekt
CacheLastModifiedFactorFaktor für die geschätzte Frische0,1Apache-Projekt
CacheStaleOnErroralte Kopie anstelle einer 5xx-AntworteingeschaltetApache-Projekt
proxy_cache_use_stalealte Kopie bei Fehler oder Zeitüberlaufausgeschaltetnginx
proxy_cache_background_updateAuffrischung im Hintergrund bei alter Kopieausgeschaltetnginx

Zwei Zeilen dieser Tabelle verdienen besondere Aufmerksamkeit. Erstens die Heuristik: Trägt eine Antwort weder Ablaufdatum noch Cache-Control, darf ein Cache die Frischedauer schätzen, und RFC 9111 nennt als typische Einstellung zehn Prozent der Zeit seit der letzten Änderung (RFC 9111). Bei einer Datei, deren letzte Änderung ein Jahr zurückliegt, sind das gut fünf Wochen. Zweitens die Vorgaben: In mod_cache ist das Ausliefern alter Inhalte anstelle von 5xx-Antworten voreingestellt (Apache-Projekt), in nginx steht proxy_cache_use_stale ab Werk auf off (nginx). Dieselbe Anwendung verhält sich hinter zwei Zwischenschichten also grundverschieden – und beide Verhaltensweisen sind dokumentiert, keine davon ist ein Fehler.

Der Vorrat ist die eigentliche Erkennungszeit

Solange die Kante liefern kann, verschiebt sie den sichtbaren Ausfall nach hinten. Bei max-age 600 und stale-if-error 1200 sind das 1800 Sekunden, in denen ein toter Ursprung wie ein gesunder aussieht (RFC 5861, Informational). Wer diese Spanne kennt, kann sie überwachen; wer sie nicht kennt, misst am Ende die Ausdauer des Caches und nennt das Verfügbarkeit. Wie sich dieselbe Verzögerung nach einer Auslieferung zeigt, steht in Cache-Fallen nach dem Deploy.

Cache-Status: die Antwort auf die eigentliche Frage

Seit RFC 9211 gibt es einen standardisierten Kopf, der genau das mitteilt, was eine Überwachung wissen möchte. Das Feld Cache-Status trägt eine Liste, in der jedes Mitglied für einen Cache steht, der die Anfrage bearbeitet hat; das erste Mitglied steht dem Ursprungsserver am nächsten, das letzte dem Nutzer (RFC 9211). Damit lässt sich ablesen, wie viele Schichten beteiligt waren und was jede von ihnen getan hat. Für den Fall, um den es hier geht, ist ein Satz aus dem Dokument entscheidend: Eine veraltete Antwort, die ohne Weiterleitung an den Ursprung verwendet wird – etwa weil der Ursprungsserver nicht verfügbar ist –, darf als Treffer gelten (RFC 9211).

antwort-der-kante.http
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=600, stale-if-error=1200
Age: 1490
Cache-Status: vorschaltcache; fwd=stale; fwd-status=503, kante; hit; ttl=-890

Drei Angaben in dieser Antwort widersprechen dem grünen Haken. Age steht bei 1490 Sekunden und damit weit jenseits der 600 Sekunden Frischedauer. Der Parameter ttl gibt die verbleibende Frische an und darf negativ werden, um Veralterung anzuzeigen (RFC 9211) – hier fehlen 890 Sekunden. Und fwd=stale sagt aus, dass der Cache zwar eine Antwort auswählen konnte, diese aber veraltet war (RFC 9211), während fwd-status den Statuscode trägt, den der Server der nächsten Stufe geliefert hat (RFC 9211). Der Ursprung hat also 503 geantwortet, der Besucher hat 200 bekommen. Beides steht in derselben Antwort, und eine Prüfung, die nur die Statuszeile liest, sieht davon nichts.

Wie verbreitet die Lage ist

Die Mechanik ist kein Sonderfall einzelner Aufbauten. Im Web Almanac 2025 werden 35 Prozent der mobilen HTML-Anfragen über ein CDN beantwortet, bei Ressourcen von Subdomains sind es 52 Prozent und bei Drittanbieterinhalten 71 Prozent (Web Almanac 2025). Für HTML ist der Anteil zwischen 2024 und 2025 von 33 auf 35 Prozent gestiegen (Web Almanac 2025) – der Anteil der Seiten, bei denen zwischen Prüfung und Anwendung eine Schicht liegt, nimmt also eher zu. Wer den Einsatz eines CDN plant, plant damit auch diese Schicht in die eigene Überwachung hinein.

62,2 Prozent tragen max-age

Bei 62,2 Prozent der Desktop-Anfragen trägt die Antwort eine max-age-Angabe (Web Almanac 2021). Die Frischedauer ist damit in der Mehrheit der Fälle gesetzt und die Blindspanne grundsätzlich berechenbar.

0,2 Prozent setzen stale-if-error

Die Nachfrist für Fehlerfälle ist selten ausdrücklich gesetzt: bei 0,2 Prozent der Desktop-Anfragen trägt die Antwort stale-if-error (Web Almanac 2021). Wo sie fehlt, entscheidet allein die Voreinstellung der Zwischenschicht.

2,3 Prozent nutzen stale-while-revalidate

Mit 2,3 Prozent der Desktop-Anfragen bleibt auch die Auffrischung im Hintergrund eine Ausnahme (Web Almanac 2021), obwohl sie genau die Lücke zwischen schneller Antwort und aktuellem Stand schließt.

24,6 Prozent ohne jede Angabe

Bei 74,8 Prozent der Desktop-Anfragen trägt die Antwort Cache-Control, bei 24,6 Prozent weder Cache-Control noch Expires (Web Almanac 2021). In diesem Viertel entscheidet die Heuristik über die Frischedauer.

Die Verteilung erklärt, warum das Problem so oft unbemerkt bleibt. Ausdrückliche Anweisungen für den Fehlerfall sind die Ausnahme, die Voreinstellungen der Zwischenschichten dagegen die Regel – und die unterscheiden sich, wie die Tabelle zeigt, bereits zwischen zwei verbreiteten Servern. Für die Überwachung folgt daraus eine unbequeme Konsequenz: Die Blindspanne einer Website lässt sich nicht aus der Anwendung ableiten, sondern nur an der ausgelieferten Antwort messen.

Zwei Prüfpfade statt einem

Die Auflösung ist unspektakulär und kostet wenig: beide Enden der Kette getrennt prüfen und die Ergebnisse vergleichen. Der öffentliche Pfad misst, was der Besucher bekommt. Der zweite Pfad geht am Cache vorbei und misst, ob die Anwendung antwortet. Zusammen ergeben beide Ergebnisse eine Aussage, die keines von beiden allein tragen kann.

  • Öffentlicher Pfad: die reguläre Adresse über die Kante, mit Zusicherungen auf Statuscode, Inhalt und Antwortzeit.
  • Ursprungspfad: dieselbe Anwendung direkt angesprochen, entweder über einen eigenen Hostnamen oder über eine Anfrage mit gesetztem Host-Kopf gegen die Adresse des Ursprungs.
  • Gesundheitsendpunkt: eine schlanke Adresse, die Datenbank und wichtigste Abhängigkeiten anfasst und ausdrücklich als nicht speicherbar ausgeliefert wird.
  • Vergleich: Weicht der Ursprungspfad vom öffentlichen Pfad ab, ist das der Befund – und zwar bevor der Vorrat der Kante aufgebraucht ist.
$ curl -sSI https://www.example.invalid/ | grep -Ei '^(age|cache-control|cache-status):'
age: 1490 cache-control: max-age=600, stale-if-error=1200 cache-status: vorschaltcache; fwd=stale; fwd-status=503, kante; hit; ttl=-890
$ curl -sS -o /dev/null -w '%{http_code}\n' --resolve www.example.invalid:443:203.0.113.10 https://www.example.invalid/gesundheit
503
$ curl -sSI https://www.example.invalid/gesundheit | grep -i '^cache-control:'
cache-control: no-store

Der erste Aufruf beantwortet die Herkunftsfrage, ohne dass etwas installiert werden muss. Der zweite umgeht die Kante über eine feste Namensauflösung und trifft den Ursprung direkt – hier kommt der 503 zum Vorschein, den der Besucher gar nicht zu sehen bekommt. Der dritte prüft, ob der Gesundheitsendpunkt selbst speicherbar ist; ist er es, misst auch dieser Pfad irgendwann nur noch eine Kopie seiner selbst. Wer mehrere Standorte prüft, erkennt zusätzlich, ob nur einzelne Kanten betroffen sind – dazu passt der Beitrag zum Monitoring von mehreren Standorten.

Zusicherungen, die den Unterschied messen

Aus zwei Pfaden wird erst dann eine Überwachung, wenn Regeln daran hängen. Sinnvoll sind Zusicherungen, die nicht den Statuscode wiederholen, sondern Herkunft und Alter der Antwort bewerten. Drei Regeln decken den Großteil der Fälle ab: ein Höchstwert für Age auf dem öffentlichen Pfad, ein Ausschluss von fwd=stale über mehrere aufeinanderfolgende Prüfungen und ein harter Statusvergleich zwischen öffentlichem Pfad und Ursprungspfad.

cache-lage.py
from dataclasses import dataclass

FEHLER_STATUS = {500, 502, 503, 504}   # Fehlerbegriff aus RFC 5861

@dataclass
class Antwort:
    status: int
    age: int | None             # None heißt: Kopf war nicht gesetzt
    max_age: int | None
    stale_if_error: int | None
    fwd: str | None             # Wert aus Cache-Status, falls vorhanden

def blindfenster(a: Antwort):
    """Sekunden, in denen ein toter Ursprung verdeckt bleiben kann."""
    if a.max_age is None:
        return None                     # ungemessen, nicht 0
    return a.max_age + (a.stale_if_error or 0)

def lage(a: Antwort) -> str:
    if a.status in FEHLER_STATUS:
        return "fehler wird durchgereicht"
    if a.fwd == "stale":
        return "ursprung antwortet nicht"
    if a.age is None:
        return "unbestimmt"             # kein Nachweis in beide Richtungen
    if a.max_age is not None and a.age > a.max_age:
        return "veraltete kopie"
    return "frisch"

def restspanne(a: Antwort):
    fenster = blindfenster(a)
    if fenster is None or a.age is None:
        return None
    return max(fenster - a.age, 0)

Die Funktionen geben bewusst None zurück, wenn der Age-Kopf fehlt oder max-age nicht gesetzt ist. Ein fehlender Kopf ist kein Nullwert, sondern eine nicht durchgeführte Messung – und eine Überwachung, die beides gleich behandelt, meldet Ruhe, wo sie nichts gemessen hat. Dieselbe Trennung lohnt sich bei Antwortzeiten, wo ein einzelner Ausreißer im Mittelwert verschwindet und erst in den Perzentilen p95 und p99 sichtbar wird.

Alarmieren, bevor der Vorrat aufgebraucht ist

Der Zeitpunkt des Alarms entscheidet, ob die Überwachung noch nützt. Fällt der Alarm erst, wenn die Kante keine Kopie mehr hat, ist der Ausfall bereits für alle sichtbar – dann meldet die Überwachung dasselbe wie das Telefon. Der Gewinn liegt in der Spanne davor: Sie beginnt in dem Moment, in dem der Ursprungspfad kippt, und endet, sobald das Alter der ausgelieferten Antwort die Summe aus Frischedauer und Nachfrist überschreitet (RFC 5861, Informational).

  • Stufe 1, sofort: Der Ursprungspfad antwortet mit 500, 502, 503 oder 504 (RFC 5861, Informational), der öffentliche Pfad noch mit 200. Das ist die stille Phase und der früheste sinnvolle Zeitpunkt für eine Meldung.
  • Stufe 2, nach Bestätigung: Auf dem öffentlichen Pfad taucht fwd=stale auf oder ttl wird negativ (RFC 9211). Jetzt liefert die Kante nachweislich aus dem Vorrat.
  • Stufe 3, vor dem Ende: Age nähert sich der Summe aus max-age und stale-if-error. Ab hier ist der Ausfall für Besucher absehbar und nicht mehr nur für die Überwachung.
  • Dauerregel: Der Gesundheitsendpunkt bleibt unzwischengespeichert, sonst verliert Stufe 1 ihre Grundlage. Wie sich Fehlerantworten sauber von Ausreißern trennen lassen, steht im Beitrag zur Fehlerrate von 5xx-Antworten.

Ein grüner Haken ohne Aussage über die Herkunft der Antwort ist eine Aussage über den Cache, nicht über die Website. Der Unterschied kostet in der Einrichtung kaum etwas und entscheidet darüber, ob eine Meldung rechtzeitig kommt.

— XICTRAQ

Was sich diese Woche einrichten lässt

Der Aufwand bleibt überschaubar, weil alle benötigten Angaben bereits in den Antwortköpfen stehen. Ein Durchgang: An einer Beispielseite die Köpfe Age, Cache-Control und Cache-Status abrufen und die Blindspanne notieren. Danach den Ursprung als eigenen Prüfpfad anlegen, entweder über einen internen Hostnamen oder über eine feste Namensauflösung. Zuletzt eine Zusicherung auf den Age-Wert setzen und den Gesundheitsendpunkt auf no-store stellen. Ein vollständiges Inventar der geprüften Adressen zeigt dabei, welche Einstiegspunkte bisher gar keinen Prüfpfad haben.

Vor Lastspitzen lohnt sich der Durchgang doppelt, weil dann Trefferquote der Kante und Last am Ursprung gleichzeitig steigen – was dabei zu beachten ist, steht in der Vorbereitung auf das Weihnachtsgeschäft. In XICTRAQ lassen sich beide Pfade als getrennte Prüfungen führen, Kopfzusicherungen gehören zur API-Überwachung, und die Meldung geht über die eingerichteten Alarmkanäle hinaus auch in die Statusseite, damit Kundinnen und Kunden dieselbe Lage sehen wie das Team. Wer das Zusammenspiel zuerst ansehen möchte, findet es in der Demo-Ansicht; die Grundlagen der Erreichbarkeitsprüfung stehen unter Uptime-Monitoring.

Quellen und Studien

Dieser Beitrag stützt sich auf: RFC 9111 (HTTP Caching, Abschnitte 4.2.2, 4.2.4 und 5.1), RFC 5861 (Informational; stale-if-error und stale-while-revalidate), RFC 9211 (Cache-Status-Kopf), die Dokumentation des Moduls mod_cache im Apache-Projekt und die Dokumentation von ngx_http_proxy_module in nginx. Die Verbreitungszahlen stammen aus dem Kapitel Caching des Web Almanac 2021 und dem Kapitel CDN des Web Almanac 2025.

Warum meldet mein Uptime-Check grün, obwohl der Server ausgefallen ist?
In der Regel deshalb, weil die Prüfung an einer Zwischenschicht endet und dort eine gespeicherte Kopie beantwortet wird. Ein Cache darf eine veraltete Antwort nur erzeugen, wenn er vom Ursprung getrennt ist oder wenn es ihm erlaubt wurde – und nicht, wenn eine Anweisung wie no-cache oder must-revalidate sie untersagt (RFC 9111). Der Statuscode 200 bezieht sich dann auf die Kante und nicht auf die Anwendung dahinter. Ein Blick auf den Age-Kopf zeigt das typischerweise sofort.
Wie lange kann ein Ausfall hinter einem CDN unbemerkt bleiben?
Das hängt an der Summe aus Frischedauer und Nachfrist. Im Beispiel aus RFC 5861 ist eine Antwort mit max-age=600 und stale-if-error=1200 insgesamt 1800 Sekunden lang verwendbar, danach reicht der Cache die Fehlermeldung durch (RFC 5861, Informational). Fehlt eine ausdrückliche Angabe, entscheidet die Voreinstellung der Zwischenschicht – in mod_cache liegt die Obergrenze bei 86.400 Sekunden (Apache-Projekt). Erfahrungsgemäß liegen reale Fenster zwischen wenigen Minuten und mehreren Stunden.
Beweist ein fehlender Age-Kopf, dass die Antwort vom Ursprung kam?
Nein. RFC 9111 hält ausdrücklich fest, dass das Fehlen des Age-Feldes nicht bedeutet, dass der Ursprung kontaktiert wurde (RFC 9111). Der Kopf taugt als Nachweis für eine Cache-Antwort, aber nicht als Ausschluss. Für eine belastbare Aussage braucht es einen zweiten Prüfpfad, der die Zwischenschicht umgeht, oder den Cache-Status-Kopf.
Was sagt der Cache-Status-Kopf, was Age nicht sagt?
Er benennt die beteiligten Schichten einzeln und zeigt, was jede getan hat. Das erste Mitglied der Liste steht dem Ursprungsserver am nächsten, das letzte dem Nutzer (RFC 9211). Der Wert fwd=stale zeigt an, dass eine Antwort ausgewählt werden konnte, diese aber veraltet war (RFC 9211), und fwd-status trägt den Statuscode, den der Server der nächsten Stufe geliefert hat (RFC 9211). Damit steht der 503 des Ursprungs in derselben Antwort, die dem Besucher als 200 erscheint.
Reicht es, das Prüfintervall zu verkürzen?
In diesem Fall nicht. Solange jede Prüfung dieselbe zwischengespeicherte Antwort erhält, ändert ein kürzerer Takt am Ergebnis nichts – er erhöht lediglich die Trefferquote der Kante. Wirksam ist ein zweiter Prüfpfad, der den Ursprung direkt anspricht, zusammen mit einer Zusicherung auf Age oder Cache-Status. Für andere Fragen bleibt das Intervall wichtig, etwa für die Erkennungszeit bei einem vollständigen Ausfall.
Wie verhindere ich, dass mein Gesundheitsendpunkt selbst zwischengespeichert wird?
Indem die Antwort ausdrücklich als nicht speicherbar ausgeliefert wird, üblicherweise über Cache-Control: no-store. Ohne eine solche Angabe darf ein Cache die Frischedauer heuristisch schätzen; RFC 9111 nennt als typische Einstellung zehn Prozent der Zeit seit der letzten Änderung (RFC 9111). Bei selten geänderten Dateien ergibt das erstaunlich lange Fenster. Zusätzlich hilft es, den Endpunkt auf einem Pfad zu führen, der von der Zwischenschicht ausgenommen ist.
In 60 Sekunden starten

Lassen Sie XICTRAQ Ihre Website bewachen.

Dauerhaft kostenloser Plan verfügbar. Keine Kreditkarte, keine Installation, keine versteckten Kosten.