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