Möchte man aus cURL die Zeiten heraus finden, die es für die bestimmten Aktionen (DNS Lookup, Connect etc..) benötigt, gibt es die Möglichkeit, dies mit Hilfe der formatierten Ausgabe zu tun.

  1. Anlegen einer Textdatei „curl-timing.txt“ mit dem Inhalt
    Zeit-DNSlookup: %{time_namelookup}s\n
    Zeit-Verbindung: %{time_connect}s\n
    Zeit-Handshake: %{time_appconnect}s\n
    Zeit-Pretransfer: %{time_pretransfer}s\n
    Zeit_Redirect: %{time_redirect}s\n
    Zeit_Starttransfer: %{time_starttransfer}s\n
    ----------\n
    Zeit_Total: %{time_total}s\n
  2. cURL Anfrage starten mit curl -w "@curl-timing.txt" -o /dev/null -s "[URL]"
  3. Ausgabe z.B:
    Zeit-DNSlookup: 0.003987s
    Zeit-Verbindung: 0.025690s
    Zeit-Handshake: 0.000000s
    Zeit-Pretransfer: 0.025738s
    Zeit_Redirect: 0.000000s
    Zeit_Starttransfer: 0.181647s
    ----------
    Zeit_Total: 0.181804s

Erklärung der Variablen

time_namelookup:Die Zeit in Sekunden, die vom Start bis zum Abschluss der Namensauflösung verging.

time_connect: Die Zeit in Sekunden, die vom Start bis zum Abschluss der TCP-Verbindung zum Remote-Host (oder Proxy) verging.

time_pretransfer: Die Zeit in Sekunden, die vom Start bis zum Beginn der Dateiübertragung verging. Dazu gehören alle Befehle und Verhandlungen vor der Übertragung, die für das/die jeweilige(n) Protokoll(e) spezifisch sind.

time_appconnect: Die Zeit in Sekunden, die vom Start bis zum Abschluss der SSL/SSH/usw.-Verbindung/Handshake mit dem Remote-Host verging.

time_redirect: Die Zeit (in Sekunden), die für alle Umleitungsschritte, einschließlich Namenssuche, Verbindung, Vorübertragung und Übertragung, benötigt wurde, bevor die endgültige Transaktion gestartet wurde. time_redirect zeigt die komplette Ausführungszeit für mehrere Umleitungen.

time_starttransfer: Die Zeit in Sekunden, die vom Start bis zum Empfang des ersten Bytes verging. Hierzu zählen time_pretransfer und auch die Zeit, die der Server zur Berechnung des Ergebnisses benötigte.