TTFB i Curl

Què és TTFB (Time to First Byte): És el temps que triga un navegador web a rebre el primer byte d’una URL després de fer la petició.

Hi ha molts factors que poden variar aquest valor (base de dades poc optimitzada, plugin que pesin molt etc…). Quant més baix sigui millor.

Per obtenir els valors de TTFB (Time to First Byte) amb curl podem segui el següent exemple:

curl https://blog.sergicoll.cat/ -s -o output -w 'dns: %{time_namelookup} sec\nconnect: %{time_connect} sec\nssl %{time_appconnect}\npre-Transfer %{time_pretransfer}\ntime-redirect %{time_redirect}\nuntil first byte: %{time_starttransfer} sec\ntotal: %{time_total} sec\n'

dns: 0.003171 sec
connect: 0.004135 sec
ssl 0.183892
pre-Transfer 0.184085
time-redirect 0.000000
until first byte: 0.187575 sec
total: 0.194165 sec

Alternativa

cat >curl-format.txt <<EOF
 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
                     ---- ttfb ---\n
          time_total:  %{time_total}s\n
EOF
curl -w "@curl-format.txt" -o /dev/null -s "https://blog.sergicoll.cat/"

Un altre exemple

curl  https://blog.sergicoll.cat/ -s -w '\nLookup time:\t\t%{time_namelookup}\nConnect time:\t\t%{time_connect}\nSSL handshake time:\t%{time_appconnect}\nPre-Transfer time:\t%{time_pretransfer}\nRedirect time:\t\t%{time_redirect}\nTime to first byte:\t%{time_starttransfer}\n\nTotal time:\t\t%{time_total}\n' -o /dev/null 

Link útil a un article de cloudflare:

Timing web requests with cURL and Chrome (cloudflare.com)