Server-Timing header
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2023 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Der HTTP-Server-Timing-Antwortheader kommuniziert ein oder mehrere Leistungsmetriken über den Anforderungs-/Antwortzyklus an den Benutzeragenten. Er wird verwendet, um Metriken zur Serverleistung im Backend (z. B. Datenbank-Lese-/Schreibvorgänge, CPU-Zeit, Dateisystemzugriffe usw.) in den Entwicklerwerkzeugen des Browsers des Benutzers oder im PerformanceServerTiming-Interface darzustellen.
| Headertyp | Antwortheader |
|---|
Syntax
// A single metric
Server-Timing: <timing-metric>
// Multiple metrics as a comma-separated list
Server-Timing: <timing-metric>, …, <timing-metricN>
Ein <timing-metric> hat einen Namen und kann eine optionale Dauer sowie eine optionale Beschreibung enthalten. Zum Beispiel:
// A metric with a name only
Server-Timing: missedCache
// A metric with a duration
Server-Timing: cpu;dur=2.4
// A metric with a description and duration
Server-Timing: cache;desc="Cache Read";dur=23.2
// Two metrics with duration values
Server-Timing: db;dur=53, app;dur=47.2
Direktiven
<timing-metric>-
Eine durch Kommas getrennte Liste von einer oder mehreren Metriken mit den folgenden Komponenten, getrennt durch Semikolons:
<name>-
Ein Name-Token (keine Leerzeichen oder Sonderzeichen) für die Metrik, die implementierungsspezifisch oder vom Server definiert ist, wie
cacheHit. <duration>Optional-
Eine Dauer als Zeichenkette
dur, gefolgt von=, gefolgt von einem Wert, zum Beispieldur=23.2. <description>Optional-
Eine Beschreibung als Zeichenkette
desc, gefolgt von=, gefolgt von einem Wert als Token oder einem Anführungszeichen, zum Beispieldesc=prododerdesc="DB lookup".
Namen und Beschreibungen sollten so kurz wie möglich gehalten werden (verwenden Sie z. B. Abkürzungen und lassen Sie optionale Werte weg), um den HTTP-Daten-Overhead zu minimieren.
Beschreibung
>Datenschutz und Sicherheit
Der Server-Timing-Header kann potenziell sensible Informationen über die Anwendung und Infrastruktur preisgeben. Entscheiden Sie, welche Metriken gesendet werden, wann sie gesendet werden und wer sie sehen soll, basierend auf dem Anwendungsfall. Sie könnten sich beispielsweise dafür entscheiden, Metriken nur authentifizierten Benutzern anzuzeigen und nichts in öffentlichen Antworten.
PerformanceServerTiming-Interface
Zusätzlich dazu, dass Server-Timing-Header-Metriken in den Entwicklerwerkzeugen des Browsers angezeigt werden, ermöglicht das PerformanceServerTiming-Interface Tools, Metriken automatisch aus JavaScript zu sammeln und zu verarbeiten. Dieses Interface ist auf dieselbe Herkunft beschränkt, aber Sie können den Timing-Allow-Origin-Header verwenden, um die Domains anzugeben, die Zugriff auf die Servermetriken haben dürfen. Das Interface ist nur in sicheren Kontexten (HTTPS) in einigen Browsern verfügbar.
Die Komponenten des Server-Timing-Headers werden wie folgt den PerformanceServerTiming-Eigenschaften zugeordnet:
"name"->PerformanceServerTiming.name"dur"->PerformanceServerTiming.duration"desc"->PerformanceServerTiming.description
Beispiele
>Senden einer Metrik mit dem Server-Timing-Header
Die folgende Antwort enthält eine Metrik custom-metric mit einer Dauer von 123.45 Millisekunden und einer Beschreibung "Meine benutzerdefinierte Metrik":
Server-Timing: custom-metric;dur=123.45;desc="My custom metric"
Server-Timing als HTTP-Trailer
In der folgenden Antwort wird der Trailer-Header verwendet, um anzuzeigen, dass ein Server-Timing-Header nach dem Antwortkörper folgt. Eine Metrik custom-metric mit einer Dauer von 123.4 Millisekunden wird gesendet.
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Trailer: Server-Timing
--- response body ---
Server-Timing: custom-metric;dur=123.4
Warnung:
Nur die DevTools des Browsers können den Server-Timing-Header als HTTP-Trailer verwenden, um Informationen im Netzwerk -> Timings-Tab anzuzeigen. Die Fetch-API hat keinen Zugriff auf HTTP-Trailer. Siehe Browser-Kompatibilität für weitere Informationen.
Spezifikationen
| Spezifikation |
|---|
| Server Timing> # the-server-timing-header-field> |
Browser-Kompatibilität
Siehe auch
PerformanceServerTimingTrailer-Header