Saltar a contenido

httptap

httptap

PyPI Python Versions CI Coverage

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

🎁 Ahorra un 50 % en GitKraken Pro

Combina GitKraken Client, GitLens para VS Code y potentes herramientas de CLI para acelerar cada flujo de trabajo de tus repositorios.

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
  • Información de TLS – el CN del certificado, los SAN, el emisor, el número de series, 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-only para scripting
  • Exportación JSON – conserva los datos completos de los pasos (incluidas las cadenas de redirecciones) para su procesamiento posterior
  • 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:

httptap https://httpbin.io/get

POST con datos JSON:

httptap --data '{"name": "John"}' https://httpbin.io/post

Salida de ejemplo

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

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?

Requisitos

  • Python 3.10-3.15
  • macOS, Linux o Windows
  • Sin dependencies del sistema más allá de la red estándar

Licencia

Apache License 2.0 © Sergei Ozeranskii

Conecta

Sigue al author 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
  • dnspython - Kit de herramientas DNS para Python
  • Rich - Hermoso formato de terminal