Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Server-Timing header
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since März 2023.
* Some parts of this feature may have varying levels of support.
Der HTTPServer-TimingAntwort-Header kommuniziert ein oder mehrere Leistungsmetriken des Anforderungs-Antwort-Zyklus an den User-Agent. Er wird verwendet, um auf Backend-Server-Leistungsmetriken (z.B. Datenbank-Lese-/Schreibvorgänge, CPU-Zeit, Dateisystemzugriff usw.) in den Entwicklertools des Browsers des Benutzers oder in derPerformanceServerTiming Schnittstelle aufmerksam zu machen.
| Header-Typ | Antwort-Header |
|---|
In diesem Artikel
Syntax
// A single metricServer-Timing: <timing-metric>// Multiple metrics as a comma-separated listServer-Timing: <timing-metric>, …, <timing-metricN>Ein<timing-metric> hat einen Namen und kann eine optionale Dauer und eine optionale Beschreibung enthalten.Zum Beispiel:
// A metric with a name onlyServer-Timing: missedCache// A metric with a durationServer-Timing: cpu;dur=2.4// A metric with a description and durationServer-Timing: cache;desc="Cache Read";dur=23.2// Two metrics with duration valuesServer-Timing: db;dur=53, app;dur=47.2Direktiven
<timing-metric>Eine durch Kommas getrennte Liste von einer oder mehreren Metriken mit den folgenden durch Semikolons getrennten Komponenten:
<name>Ein Name-Token (keine Leerzeichen oder Sonderzeichen) für die Metrik, die implementierungsspezifisch oder serverdefiniert ist, wie z.B.
cacheHit.<duration>OptionalEine Dauer als der String
dur, gefolgt von=, gefolgt von einem Wert, wie z.B.dur=23.2.<description>OptionalEine Beschreibung als der String
desc, gefolgt von=, gefolgt von einem Wert als Token oder einem in Anführungszeichen gesetzten String, wie z.B.desc=prododerdesc="DB lookup".
Namen und Beschreibungen sollten so kurz wie möglich gehalten werden (z.B. Abkürzungen verwenden und optionale Werte weglassen), um den HTTP-Daten-Overhead zu minimieren.
Beschreibung
>Datenschutz und Sicherheit
DerServer-Timing-Header kann potenziell sensible Anwendungs- und Infrastrukturinformationen preisgeben. Entscheiden Sie, welche Metriken gesendet werden sollen, wann sie gesendet werden sollen und wer sie basierend auf dem Anwendungsfall sehen darf. Beispielsweise können Sie entscheiden, Metriken nur authentifizierten Benutzern anzuzeigen und keine auf öffentlichen Antworten.
PerformanceServerTiming-Schnittstelle
Neben dem Auftreten vonServer-Timing-Header-Metriken in den Entwicklertools des Browsers ermöglicht diePerformanceServerTiming Schnittstelle es Werkzeugen, Metriken automatisch aus JavaScript zu sammeln und zu verarbeiten. Diese Schnittstelle ist auf denselben Ursprung beschränkt, aber Sie können den HeaderTiming-Allow-Origin verwenden, um die Domänen anzugeben, die Zugriff auf die Servermetriken haben dürfen. Die Schnittstelle ist nur in sicheren Kontexten (HTTPS) in einigen Browsern verfügbar.
Die Komponenten desServer-Timing-Headers entsprechen denPerformanceServerTiming Eigenschaften wie folgt:
"name"->PerformanceServerTiming.name"dur"->PerformanceServerTiming.duration"desc"->PerformanceServerTiming.description
Beispiele
>Senden einer Metrik mit dem Server-Timing-Header
Die folgende Antwort enthält eine Metrikcustom-metric mit einer Dauer von123.45 Millisekunden und einer Beschreibung "My custom metric":
Server-Timing: custom-metric;dur=123.45;desc="My custom metric"Server-Timing als HTTP-Trailer
In der folgenden Antwort wird derTrailer Header verwendet, um anzugeben, dass einServer-Timing-Header dem Antwortkörper folgen wird. Eine Metrikcustom-metric mit einer Dauer von123.4 Millisekunden wird gesendet.
HTTP/1.1 200 OKTransfer-Encoding: chunkedTrailer: Server-Timing--- response body ---Server-Timing: custom-metric;dur=123.4Warnung:Nur die DevTools des Browsers können denServer-Timing-Header als HTTP-Trailer verwenden, um Informationen im Tab Netzwerk -> Timings anzuzeigen. Die Fetch API kann auf HTTP-Trailer nicht zugreifen. SieheBrowser-Kompatibilität für weitere Informationen.
Spezifikationen
| Specification |
|---|
| Server Timing> # the-server-timing-header-field> |