Server-Timing
Baseline 2023
Newly available
Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Der Server-Timing
-Header kommuniziert eine oder mehrere Metriken und Beschreibungen für einen gegebenen Anfrage-Antwort-Zyklus. Er wird verwendet, um Backend-Server-Timing-Metriken (z. B. Datenbank-Lesen/Schreiben, CPU-Zeit, Dateisystemzugriff usw.) in den Entwicklerwerkzeugen im Browser des Benutzers oder in der PerformanceServerTiming
-Schnittstelle anzuzeigen.
Header-Typ | Response-Header |
---|---|
Verbotener Header-Name | nein |
Syntax
Die Syntax des Server-Timing
-Headers ermöglicht es Ihnen, Metriken auf verschiedene Arten zu kommunizieren: nur der Servermetriken-Name, Metriken mit Wert, Metriken mit Wert und Beschreibung sowie Metriken mit Beschreibung.
Dieser Header kann eine oder mehrere Metriken enthalten, die durch Kommas getrennt sind. Jede Metrik hat einen Namen, eine optionale Dauer und eine optionale Beschreibung. Diese Komponenten werden durch Semikolons getrennt.
Die Komponente für die Dauer besteht aus dem String "dur"
, gefolgt von "="
, gefolgt vom Wert, wie "dur=23.2"
. Die Komponente für die Beschreibung besteht aus dem String "desc"
, gefolgt von "="
, gefolgt vom Wert, wie "desc=DB lookup"
.
Die Spezifikation empfiehlt, dass Namen und Beschreibungen so kurz wie möglich gehalten werden sollten (verwenden Sie Abkürzungen und lassen Sie optionale Werte nach Möglichkeit weg), um den HTTP-Overhead zu minimieren.
// Single metric without value
Server-Timing: missedCache
// Single metric with value
Server-Timing: cpu;dur=2.4
// Single metric with description and value
Server-Timing: cache;desc="Cache Read";dur=23.2
// Two metrics with value
Server-Timing: db;dur=53, app;dur=47.2
// Server-Timing as trailer
Trailer: Server-Timing
--- response body ---
Server-Timing: total;dur=123.4
Datenschutz und Sicherheit
Der Server-Timing
-Header kann potenziell sensible Anwendungs- und Infrastrukturdaten preisgeben. Überlegen Sie, welche Metriken wann und an wen auf Serverseite zurückgegeben werden. Zum Beispiel könnten Sie Metriken nur authentifizierten Benutzern anzeigen und der Öffentlichkeit nichts zeigen.
PerformanceServerTiming-Schnittstelle
Zusätzlich zur Darstellung von Server-Timing
-Header-Metriken in den Entwicklerwerkzeugen des Browsers ermöglicht die PerformanceServerTiming
-Schnittstelle Werkzeugen, Metriken automatisch aus JavaScript zu sammeln und zu verarbeiten. Diese Schnittstelle ist auf denselben Ursprung beschränkt, Sie können jedoch den Timing-Allow-Origin
-Header verwenden, um die Domänen anzugeben, die auf die Servermetriken zugreifen dürfen. Die Schnittstelle ist nur in sicheren Kontexten (HTTPS) in einigen Browsern verfügbar.
Die Komponenten des Server-Timing
-Headers entsprechen den PerformanceServerTiming
-Eigenschaften wie folgt:
"name"
->PerformanceServerTiming.name
"dur"
->PerformanceServerTiming.duration
"desc"
->PerformanceServerTiming.description
Spezifikationen
Specification |
---|
Server Timing # the-server-timing-header-field |
Browser-Kompatibilität
BCD tables only load in the browser