El tiempo de respuesta de un sitio web puede tener un gran impacto en la experiencia del usuario, principalmente si sos un desarrollador web, o un administrador de servidores, es buen contar con este tipo de datos para mejorar, así que hoy vamos a ver como medir el tiempo de respuesta con el poderoso comando cURL.

Con esta publicación vamos además de medir la velocidad poder realizar un test para:

  • realizar la resolución de nombres.
  • la conexión TCP al servidor.
  • que comience la transferencia de archivos.
  • el primer byte a transferir.
  • Tiempo total en completar la operación.

Además, para los sitios habilitados para HTTPS, también veremos cómo probar el tiempo, en segundos, que se necesita: para una redirección, y para completar la conexión SSL / el protocolo de enlace con el servidor.

cURL es una poderosa herramienta de la línea de comandos para transferir datos desde o hacia un servidor, utilizando protocolos como FILE, FTP, FTPS, HTTP, HTTPS y muchos otros.

Vamos a copiar la siguiente línea en la terminal:

curl -s -w 'Test de velocidad para :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com

Lo que debemos cambiar es el sitio web al final de la línea, que será nuestro sitio a analizar.

Expliquemos algunas cosas para entender que hicimos:

  • time_namelookup : tiempo en segundos que tomó desde el inicio hasta que se completó la resolución del nombre.
  • time_connect : tiempo en segundos que tomó desde el inicio hasta que se completó la conexión TCP al host remoto.
  • time_pretransfer : tiempo en segundos desde el inicio hasta que la transferencia de archivos estaba a punto de comenzar.
  • time_starttransfer : tiempo en segundos desde el inicio hasta que el primer byte estaba a punto de ser transferido.
  • tiempo_total : tiempo total en segundos que duró la operación completa (resolución de milisegundos).

Si el formato es demasiado largo, podemos volcar el resultado en un archivo y usar la siguiente sintaxis para leerlo:

curl -s -w "@format.txt" -o /dev/null http://www.google.com

En el comando anterior, los parámetros son:

  • -s le dice a curl que trabaje en silencio.
  • -w Imprime la información en un archivo de texto.
  • -o utilizado para redirigir la salida (aquí descartamos la salida re-dirigiéndola a /dev/null).

Para los sitios HTTPS, puede ejecutar el siguiente comando:

curl -s -w 'Test de velocidad para :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com

En el ejemplo anterior, los nuevos parámetros son:

  • time_appconnect : tiempo en segundos que tomó desde el inicio hasta que se completó la conexión / intercambio de SSL al host remoto.
  • time_redirect : tiempo en segundos que tomó todos los pasos de re-direccionamiento, incluyendo búsqueda de nombre, conexión, transferencia previa y transferencia antes de que se iniciara la transacción final; calcula el tiempo total de ejecución para re-direcciones múltiples.

Puntos importantes a tener en cuenta.

  • Notará que los valores de tiempo de respuesta siguen cambiando (debido a varios factores) a medida que ejecuta diferentes pruebas, por lo tanto, es recomendable recopilar varios valores y obtener un promedio de la velocidad.
  • En segundo lugar, a partir de los resultados de los comandos anteriores, puede ver que acceder a un sitio web a través de HTTP es mucho más rápido que a través de HTTPS.

Para más información, vea la página del manual de cURL:

$ man curl

 

Deja un comentario