Was ist die Server-Timing-API?

Server-Timing ist ein HTTP-Header, mit dem der Server Backend-Zeiten (Datenbank, Cache, Rendering) an den Browser meldet. Syntax und Beispiel.

Was ist die Server-Timing-API?

Server-Timing ist ein HTTP-Antwort-Header, mit dem Ihr Server meldet, wie lange seine eigene Arbeit gedauert hat, etwa eine Datenbankabfrage, ein Cache-Zugriff oder das Rendern. Der Browser zeigt die Werte in den Entwicklertools an und stellt sie JavaScript über die Schnittstelle PerformanceServerTiming bereit. So sehen Sie, wo auf dem Server die Zeit geblieben ist.

Syntax

Jede Metrik hat einen Namen und optional Dauer und Beschreibung, mehrere Metriken werden per Komma getrennt. Nach MDN:

Server-Timing: db;dur=53, cache;desc="Cache Read";dur=23.2, app;dur=47.2

Der Name ist ein Token ohne Leerzeichen oder Sonderzeichen, dur ist die Dauer als Zahl, desc eine Beschreibung. In JavaScript heißen die Felder name, duration und description.

Beispiel

Die Time to First Byte einer Produktseite beträgt 900 ms. Mit Server-Timing: db;dur=620, render;dur=210 sieht man sofort: Der Großteil entfällt auf die Datenbank. Die Real-User-Monitoring-Daten können diese Werte pro Besuch sammeln.

Typische Fehler

  • Interna preisgeben. Laut MDN kann der Header sensible Anwendungs- und Infrastrukturinformationen offenlegen. Senden Sie ihn gezielt, etwa nur an angemeldete Nutzer.
  • Zugriff über Origin-Grenzen erwarten. Die Schnittstelle ist auf denselben Origin beschränkt. Für andere Origins ist ein Timing-Allow-Origin-Header nötig.
  • Zu grob messen. Eine einzelne Metrik total sagt wenig. Teilen Sie nach Phasen auf.
  • Mit Netzwerkzeit verwechseln. Server-Timing zeigt nur, was der Server misst. Die Browserseite deckt die Web Performance API ab.

Server-Timing und Monitoring

Am nützlichsten ist es zusammen mit Messungen von außen. Das API-Monitoring von LoadFocus zerlegt die Antwortzeit jedes Laufs in Wait, DNS, TCP-Verbindung, erstes Byte und Download, sodass Sie Netzwerk- und Serverzeit trennen und dann mit Server-Timing in den Serveranteil hineinschauen.

Häufige Fragen: Server-Timing

Wird Server-Timing von Browsern unterstützt?

MDN führt es als Baseline "Widely available", seit März 2023 in Browsern, einzelne Teile können abweichen.

Kann JavaScript die Werte lesen?

Ja, über PerformanceServerTiming. Bei fremden Origins ist zusätzlich Timing-Allow-Origin nötig.

Misst es die Netzwerkzeit?

Nein, nur das, was Ihr Server selbst misst.

Ist es in Produktion unbedenklich?

Wenn Sie begrenzen, was Sie senden. Der Header kann Infrastrukturdetails verraten.

Wie schnell ist Ihre Website?

Steigern Sie ihre Geschwindigkeit und SEO nahtlos mit unserem kostenlosen Geschwindigkeitstest.

Kostenloser Websitespeed-Test

Analysieren Sie die Ladegeschwindigkeit Ihrer Website und verbessern Sie ihre Leistung mit unserem kostenlosen Seitengeschwindigkeits-Checker.