Curl : décomposer le temps
Par pepin le mercredi, mars 10 2021, 21:49 - Linux - Lien permanent
Souvent lors d'une lenteur de résultat web, ce n'est pas forcément votre connexion internet qui est coupable.
Une page web se demande, se prépare, se restitue, s'affiche, et chacune de ses tâches prends du temps.
Pour avoir le détail du temps de traitement d'une page, nous pouvons utiliser des fonctions avancées de curl, comme le formatage d'output.
Préparation du format d'output
cat output.txt
time_namelookup: %{time_namelookup}s\n time_connect: %{time_connect}s\n time_appconnect: %{time_appconnect}s\n time_pretransfer: %{time_pretransfer}s\n time_redirect: %{time_redirect}s\n time_starttransfer: %{time_starttransfer}s\n ----------\n time_total: %{time_total}s\n
Utilisation de ce fichier
curl -w "@format.txt" -o /dev/null -s http://www.google.com/
time_namelookup: 2440s time_connect: 86096s time_appconnect: 0s time_pretransfer: 86169s time_redirect: 0s time_starttransfer: 201362s ---------- time_total: 201463s
Et voila !
curl-format.txt
Et voici un fichier de formatage assez complet pour l'information sur les statistiques d'une page web
=== HEAD\n http_version: %{http_version}\n http_code: %{http_code}\n num_redirects: %{num_redirects} (nombre de redirections)\n url_effective: %{url_effective} (denière URL utilisée (si redirection))\n === TIMING\n time_namelookup: %{time_namelookup} (temps écoulé pour la résolution DNS)\n time_connect: %{time_connect} (temps écoulé depuis le début jusqu'à la connexion TCP à l'hôte distant)\n time_appconnect: %{time_appconnect} (temps écoulé jusqu'à la connexion, pour le protocole applicatif utilisé (https par exemple))\n time_pretransfer: %{time_pretransfer} (temps écoulé jusqu'avant que la réponse soit envoyée par le serveur)\n time_redirect: %{time_redirect} (temps écoulé depuis le début par toutes les redirections)\n time_starttransfer: %{time_starttransfer} (le serveur envoie son premier octet)\n === STATS\n speed_download: %{speed_download}B/s (Vitesse de téléchargement moyenne)\n speed_upload: %{speed_upload}B/s (Vitesse de téléversement moyenne)\n ----------\n time_total: %{time_total}\n