Qu'est-ce que l'API Server-Timing ?

Server-Timing est un en-tête HTTP par lequel le serveur transmet au navigateur ses durées internes (base de données, cache, rendu).

Qu'est-ce que l'API Server-Timing ?

Server-Timing est un en-tête de réponse HTTP par lequel votre serveur indique combien de temps a duré son propre travail, par exemple une requête en base, une lecture de cache ou le rendu. Le navigateur affiche ces métriques dans ses outils de développement et les expose à JavaScript via l'interface PerformanceServerTiming. Il permet de savoir où le temps est passé côté serveur.

Syntaxe

Chaque métrique a un nom et, en option, une durée et une description ; plusieurs métriques sont séparées par des virgules. D'après MDN :

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

Le nom est un jeton sans espace ni caractère spécial, dur la durée en nombre et desc la description. En JavaScript, les champs s'appellent name, duration et description.

Exemple

Le Time to First Byte d'une page produit est de 900 ms. Avec Server-Timing: db;dur=620, render;dur=210, on voit tout de suite que l'essentiel vient de la base de données. Un script de surveillance des utilisateurs réels peut collecter ces valeurs à chaque visite.

Erreurs courantes

  • Divulguer des détails internes. Selon MDN, l'en-tête peut exposer des informations sensibles sur l'application et l'infrastructure. Envoyez-le de façon ciblée, par exemple aux seuls utilisateurs authentifiés.
  • Attendre un accès inter-origines. L'interface est limitée à la même origine. Pour d'autres origines, il faut un en-tête Timing-Allow-Origin.
  • Mesurer trop grossièrement. Une seule métrique total apprend peu. Découpez par phase.
  • La confondre avec le temps réseau. Server-Timing ne reflète que ce que mesure le serveur. Le côté navigateur relève de la Web Performance API.

Server-Timing et surveillance

Il est surtout utile avec des mesures externes. La surveillance d'API de LoadFocus découpe le temps de réponse de chaque exécution en attente, DNS, connexion TCP, premier octet et téléchargement : vous séparez réseau et serveur, puis regardez à l'intérieur du serveur avec Server-Timing.

Questions fréquentes : Server-Timing

Les navigateurs prennent-ils en charge Server-Timing ?

MDN le classe Baseline « Widely available », disponible dans les navigateurs depuis mars 2023, avec des écarts selon les parties.

JavaScript peut-il lire les valeurs ?

Oui, via PerformanceServerTiming. Entre origines différentes, il faut aussi Timing-Allow-Origin.

Mesure-t-il le temps réseau ?

Non, seulement ce que votre serveur choisit de mesurer.

Est-ce sûr en production ?

Oui, si vous limitez ce que vous envoyez. L'en-tête peut révéler des détails d'infrastructure.

Quelle est la vitesse de votre site web?

Augmentez sa vitesse et son référencement naturel de manière transparente avec notre Test de Vitesse gratuit.

Test gratuit de vitesse du site Web

Analyser la vitesse de chargement de votre site Web et améliorer ses performances avec notre outil gratuit de vérification de la vitesse de la page.