httptap¶
httptap es una CLI basada en Rich que descompone una solicitud HTTP en cada fase significativa —DNS, conexión TCP, negociación TLS, espera del servidor y transferencia del cuerpo— y presenta los resultados como una tabla de línea de tiempo, un resumen compacto o métricas legibles por máquina. Está diseñada para la resolución de problemas interactiva, el análisis de regresiones y el registro de líneas base de rendimiento.
Oferta especial
Exclusivo para la comunidad de httptap
Aspects destacados¶
- Temporización fase por fase – mediciones precisas construidas a partir de los ganchos de traza de httpcore (con alternativas sensatas cuando los datos de bajo nivel no están disponibles)
- Todos los métodos HTTP – GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS con soporte de cuerpo de solicitud
- Soporte de cuerpo de solicitud – envía JSON, XML o cualquier dato en línea o desde un archivo con detección automática de Content-Type
- Consciente de IPv4/IPv6 – el resolutor y el inspector de TLS informan tanto la dirección como su familia;
-4/-6restringen la resolución a una familia, y--resolve HOST:PORT:ADDRfija un host a una dirección conservando la cabeceraHostoriginal y el SNI de TLS - Información de TLS – el CN del certificado, los SAN, el emisor, el número de serie, la ventana de validez y la cuenta atrás de caducidad, además del conjunto de cifrado y la versión del protocolo, se capturan automáticamente desde la conexión activa (sin negociación TLS adicional)
- Múltiples modos de salida – vista de cascada de Rich, resúmenes compactos de una sola línea o
--metrics-onlypara scripting - Exportación JSON – conserva los datos completos de los pasos (incluidas las cadenas de redirecciones) para su procesamiento posterior, o envíalos a stdout con
--json - - Exportación HAR –
--har PATHescribe la cadena de solicitudes como un archivo HAR 1.2 que pueden abrir las DevTools de los navegadores y los visores de HAR - Exportación a Prometheus y OpenTelemetry –
--prometheus PATHescribe un archivo textfile de node_exporter;--otlp ENDPOINTenvía spans por fase a un collector OTLP/HTTP (requierehttptap[otel]) - Comprobación de umbrales SLO –
--sloy--slo-filecondicionan trabajos de CI, sondas cron y comprobaciones de readiness a presupuestos de latencia por fase - Códigos de salida para scripts –
-f/--failsale con22ante respuestas HTTP 4xx/5xx, y las violaciones de SLO, los errores de red y el límite de redirecciones tienen cada uno su propio código de salida - Extensible – interfaces Protocol limpias para DNS, TLS, temporización, visualización y exportación para que puedas incorporar comportamiento personalizado
Ejemplos rápidos¶
Solicitud GET:
POST con datos JSON:

Características clave¶
Visualización de cascada con Rich¶
Consulta el desglose detallado de la temporización de cada fase de la solicitud HTTP con una hermosa interfaz de terminal basada en Rich.
Múltiples formatos de salida¶
- Modo Rich (predeterminado): hermosa tabla de cascada con colores y formato
- Modo compacto (
--compact): resúmenes de una sola línea adecuados para logs - Modo de métricas (
--metrics-only): métricas en bruto para scripting y automatización - Exportación JSON (
--json): datos completos de la solicitud, incluidas las cadenas de redirecciones, a un archivo o a stdout con--json - - Exportación HAR (
--har): archivo HTTP Archive 1.2 para las DevTools de los navegadores y los visores de HAR, a un archivo o a stdout con--har - - Textfile de Prometheus (
--prometheus): gauges por fase para el textfile collector de node_exporter - Trazas de OpenTelemetry (
--otlp): un span por solicitud con spans hijos por fase, enviados a un collector OTLP/HTTP
Información avanzada de red¶
- Temporización de la resolución DNS con detección de familia de IP (IPv4/IPv6)
- Temporización del establecimiento de la conexión TCP
- Análisis de la negociación TLS con información del certificado
- Medición del tiempo hasta el primer byte (TTFB)
- Temporización de la transferencia del cuerpo de la respuesta
Soporte de cadenas de redirecciones¶
Sigue las redirecciones HTTP y consulta el desglose de la temporización de cada paso de la cadena con la opción --follow.
¿Qué sigue?¶
-
Empieza con httptap en segundos
-
Aprende lo básico con ejemplos sencillos
-
Explora todas las características y opciones
-
Amplía httptap con componentes personalizados
Requisitos¶
- Python 3.11-3.15
- macOS, Linux o Windows
- Sin dependencias del sistema más allá de la red estándar
Licencia¶
Apache License 2.0 © Sergei Ozeranskii
Conecta¶
Sigue al autor para conocer ideas basadas en experiencia del mundo real:
- Canal de Telegram - Desarrollo, DevOps, arquitectura y seguridad. Experiencia real e ideas prácticas sin relleno.
- GitHub - Proyectos de código abierto y contribuciones
Agradecimientos¶
Construido sobre los hombros de bibliotecas fantásticas:
- httpx - Cliente HTTP moderno
- httpcore - Implementación de bajo nivel del protocolo HTTP
- cryptography - Análisis de certificados X.509
- Rich - Hermoso formato de terminal