Mide el tiempo hasta el primer byte para URL individuales o múltiples. Puede mostrarle valores TTFB más rápidos, más lentos y medios más opcionalmente registrar todos los encabezados de respuesta.

Usage: ttfb [options] url [url...]
-d debug
-l <log file> (infers -d) log response headers. Defaults to ./curl.log
-n <number> of times to test time to first byte
-o <option> pass options to curl (e.g. -o "-k" will make curl ignore invalid certificates)
-v verbose output. Show response breakdown (DNS lookup, TLS handshake etc)
Sigue implícitamente una cadena de redirección utilizando la opción -L de Curl.
Puede registrar todos los encabezados de respuesta (el archivo de registro predeterminado es ./curl.log ) llamando a -d .
Anule el archivo de registro predeterminado especificando -l /some/file .
Obtenga valores TTFB más rápidos, más lentos y medios especificando el número de veces para llamar a una URL; Use -n2 para 2 pruebas, -n5 para 5 y así sucesivamente.
Utiliza el cálculo %{time_starttransfer¹} - %{time_appconnect²} que no incluye ninguna sobrecarga de conexión, para aproximar mejor la cifra de TTFB de DevTool.
¹ time_starttransfer
El tiempo, en segundos, tomó desde el principio hasta que el primer byte estaba a punto de ser transferido. Esto incluye Time_Pretransfer y también el tiempo que el servidor necesitaba para calcular el resultado.
² time_appconnect
El tiempo, en segundos, tomó desde el principio hasta que se completó el SSL/SSH/ETC Connect/Handshake al host remoto.
Basado en una esencia de https://github.com/sandeepraju
Modificado por [email protected], @jaygooby
Descargue el script desde la rama maestra y haga que se ejecute:
curl -LJO https://raw.githubusercontent.com/jaygooby/ttfb.sh/master/ttfb
chmod +x ./ttfb
Usage: ttfb [options] url [url...]
-d debug
-l <log file> (infers -d) log response headers. Defaults to ./curl.log
-n <number> of times to test time to first byte
-o <option> pass options to curl (e.g. -o "-k" will make curl ignore invalid certificates)
-v verbose output. Show response breakdown (DNS lookup, TLS handshake etc)
Uso básico:
$ ttfb example.com
.227436
Uso básico con desglose de respuesta detallada:
$ ttfb -v https://example.com
DNS lookup: 0.005152 TLS handshake: 0.000000 TTFB including connection: 0.200831 TTFB: .200831 Total time: 0.201132
Prueba varias veces:
$ ttfb -n 5 example.com/example/url
.....
fastest .177263 slowest .214302 median .179957
Probar múltiples URL:
$ ttfb bbc.co.uk news.bbc.co.uk
bbc.co.uk .049985
news.bbc.co.uk .054122
Pruebe múltiples URL, varias veces:
$ ttfb -n 5 bbc.co.uk news.bbc.co.uk
.....
.....
bbc.co.uk fastest .030936 slowest .057755 median .034663
news.bbc.co.uk fastest .031413 slowest .182791 median .035001
Desglose de respuesta detallada Cuando se especifican múltiples pruebas:
$ ttfb -v -n 5 bbc.co.uk
DNS lookup: 0.005335 TLS handshake: 0.102314 TTFB including connection: 0.148328 TTFB: .046014 Total time: 0.646115
DNS lookup: 0.005322 TLS handshake: 0.102609 TTFB including connection: 0.150693 TTFB: .048084 Total time: 0.644611
DNS lookup: 0.004277 TLS handshake: 0.102066 TTFB including connection: 0.172199 TTFB: .070133 Total time: 1.196256
DNS lookup: 0.004444 TLS handshake: 0.107375 TTFB including connection: 0.160771 TTFB: .053396 Total time: 0.637290
DNS lookup: 0.005352 TLS handshake: 0.118882 TTFB including connection: 0.168772 TTFB: .049890 Total time: 0.653761
fastest .046014 slowest .070133 median .049890
Registre todos los encabezados de respuesta para múltiples pruebas a múltiples URL:
ttfb -d -n 2 bbc.co.uk https://www.bbc.co.uk/weather
..
..
bbc.co.uk fastest .027550 slowest .055215 median .041382
https://www.bbc.co.uk/weather fastest .101020 slowest .297923 median .199471
$ ls *.log
bbc_co_uk-curl.log https___www_bbc_co_uk_weather-curl.log
$ cat https___www_bbc_co_uk_weather-curl.log
HTTP/2 200
server: openresty
x-cache-action: MISS
vary: Accept-Encoding,X-BBC-Edge-Cache,X-BBC-Edge-Scheme,X-CDN
x-cache-age: 0
cache-control: private, stale-while-revalidate=10, max-age=0, must-revalidate
content-type: text/html;charset=utf-8
x-mrid: w1
date: Thu, 11 Apr 2019 17:08:07 GMT
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-lb-nocache: true
x-msig: 24e37f81323984e4e45b8048f9e3c94a
x-frame-options: SAMEORIGIN
content-length: 1077454
HTTP/2 200
server: openresty
x-cache-action: MISS
vary: Accept-Encoding,X-BBC-Edge-Cache,X-BBC-Edge-Scheme,X-CDN
x-cache-age: 0
cache-control: private, stale-while-revalidate=10, max-age=0, must-revalidate
content-type: text/html;charset=utf-8
x-mrid: w1
date: Thu, 11 Apr 2019 17:08:08 GMT
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-lb-nocache: true
x-msig: 24e37f81323984e4e45b8048f9e3c94a
x-frame-options: SAMEORIGIN
content-length: 1077454
Consulte https://blog.cloudflare.com/a-question-of-timing/ y https://curl.haxx.se/docs/manpage.html para obtener una explicación de cómo las variables curl se relacionan con las diversas etapas de la transferencia.
Para obtener una mejor aproximación del TTFB de DevTool, consideramos el tiempo sin la sobrecarga de conexión: %{time_starttransfer} - %{time_appconnect}
Utiliza una eval sucia para hacer la aritmética TTFB. Depende de los comandos bc y column .
Si desea enviar un PR, asegúrese de pasar todas las pruebas existentes y si agrega una nueva funcionalidad, agregue una prueba en el conjunto de pruebas.
Para ejecutar las pruebas, llame make la raíz del proyecto. Deberá tener instalados los murciélagos y en su $PATH .
Si solo desea ejecutar una prueba o dos, sin comment las líneas # skip en las pruebas que no le importan, por lo que leen skip , y luego esas pruebas se omitirán.
Ver CONTRIBUTING.md para más detalles.
Mostrar progreso cuando se establece más de una solicitud ( -n 2 etc.)
-o ) Ordenar la salida por TTFB más rápido cuando se suministran múltiples URL
Código de color El TTFB: figura en la respuesta estándar, de acuerdo con la velocidad de la respuesta.