Httstat visualiza las estadísticas curl(1)
de forma bella y clara.
¿Es un solo archivo? ¿Secuencia de comandos de Python que no tiene dependencia? y es compatible con Python 3? .
Hay tres formas de obtener httpstat
:
Descargue el script directamente: wget https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py
A través de pip: pip install httpstat
A través de homebrew (solo macOS): brew install httpstat
Para usuarios de Windows, se sugiere la versión Go de @davecheney. → enlace de descarga
Simplemente:
python httpstat.py httpbin.org/get
Si se instala mediante pip o brew, puede usar httpstat
como comando:
httpstat httpbin.org/get
Debido a que httpstat
es un contenedor de cURL, puede pasar cualquier opción compatible con cURL después de la URL (excepto -w
, -D
, -o
, -s
, -S
que ya utiliza httpstat
):
httpstat httpbin.org/post -X POST --data-urlencode " a=b " -v
httpstat
tiene un montón de variables de entorno para controlar su comportamiento. Aquí hay algunas demostraciones de uso. También puede ejecutar httpstat --help
para ver la explicación completa.
HTTPSTAT_SHOW_BODY
Configúrelo en true
para mostrar el cuerpo de la respuesta en la salida; tenga en cuenta que la longitud del cuerpo está limitada a 1023 bytes y se truncará si se excede. El valor predeterminado es false
.
HTTPSTAT_SHOW_IP
De forma predeterminada, httpstat muestra la dirección IP/puerto remota y local. Configúrelo en false
para deshabilitar esta función. El valor predeterminado es true
.
HTTPSTAT_SHOW_SPEED
Establezca en true
para mostrar la velocidad de descarga y carga. El valor predeterminado es false
.
HTTPSTAT_SHOW_SPEED=true httpstat http://cachefly.cachefly.net/10mb.test
...
speed_download: 3193.3 KiB/s, speed_upload: 0.0 KiB/s
HTTPSTAT_SAVE_BODY
De forma predeterminada, httpstat almacena el cuerpo en un archivo tmp; configúrelo en false
para deshabilitar esta función. El valor predeterminado es true
HTTPSTAT_CURL_BIN
Indique la ruta del contenedor cURL que se utilizará. El valor predeterminado es curl
desde el shell actual $PATH.
Este ejemplo utiliza la cURL instalada en Brew para realizar una solicitud HTTP2:
HTTPSTAT_CURL_BIN=/usr/local/Cellar/curl/7.50.3/bin/curl httpstat https://http2.akamai.com/ --http2
HTTP/2 200
...
cURL debe compilarse con nghttp2 para habilitar la función http2 (#12).
HTTPSTAT_METRICS_ONLY
Si se establece en true
, httpstat solo generará métricas en formato json, esto es útil si desea analizar los datos en lugar de leerlos.
HTTPSTAT_DEBUG
Establezca en true
para ver los registros de depuración. El valor predeterminado es false
Para mayor comodidad, puede exportar estos entornos en su .zshrc
o .bashrc
, por ejemplo:
export HTTPSTAT_SHOW_IP=false
export HTTPSTAT_SHOW_SPEED=true
export HTTPSTAT_SAVE_BODY=false
A continuación se muestran algunas implementaciones en varios idiomas:
Ir: davecheney/httpsstat
Esta es la alternativa Go de httpstat, está escrita en Go puro y no depende de programas externos. Elígelo si te gustan las ejecuciones binarias sólidas (en realidad, a mí me gustan).
Ir (biblioteca): tcnksm/go-hstat
Además de ser una herramienta cli, este proyecto se utiliza como biblioteca para ayudar a depurar la latencia de las solicitudes HTTP en el código Go, muy reflexivo y útil; vea más en este artículo.
Fiesta: b4b4r07/httpsstat
Esto es exactamente lo que quiero hacer desde el principio, pero lo dejé porque no confiaba en mi habilidad de bash, ¡buen trabajo!
Nodo: yosuke-furukawa/httpstat
b4b4r07 mencionó esto en su artículo, también podría usarse como cliente HTTP.
PHP: talhasch/php-httpsstat
La implementación de PHP por @talhasch
Algunos bloques de código en httpstat
se copiaron de otros proyectos míos, eche un vistazo:
reorx/python-terminal-color Biblioteca de archivo único desplegable para imprimir el color del terminal.
reorx/getenv Definición de variable de entorno con tipo.