コンテンツにスキップ

httptap

httptap

PyPI Python Versions CI Coverage

httptap は、HTTP リクエストをあらゆる意味のあるフェーズ(DNS、TCP 接続、TLS ハンドシェイク、サーバー待機、ボディ転送)に分解し、その結果をタイムラインテーブル、コンパクトなサマリー、またはマシンで扱いやすいメトリクスとして描画する Rich 製の CLI です。対話的なトラブルシューティング、リグレッション分析、パフォーマンスのベースライン記録のために設計されています。

特別オファー

🎁 GitKraken Pro を 50% 割引

GitKraken Client、VS Code 向け GitLens、そして強力な CLI ツールをまとめて、あらゆるリポジトリのワークフローを加速しましょう。

httptap コミュニティ限定

ハイライト

  • フェーズごとのタイミング計測 – httpcore のトレースフックから構築した精密な計測(低レベルのデータが利用できない場合には妥当なフォールバックを使用)
  • すべての HTTP メソッド – GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS をリクエストボディ対応でサポート
  • リクエストボディ対応 – JSON、XML、または任意のデータをインラインまたはファイルから送信し、Content-Type を自動検出
  • IPv4/IPv6 対応 – リゾルバと TLS インスペクタがアドレスとそのファミリの両方を報告
  • TLS インサイト – 証明書の CN、SAN、発行者、シリアル、有効期間と有効期限までのカウントダウン、加えて暗号スイートとプロトコルバージョンを、ライブ接続から自動的に取得(追加のハンドシェイクは不要)
  • 複数の出力モード – リッチなウォーターフォールビュー、コンパクトな 1 行サマリー、またはスクリプト向けの --metrics-only
  • JSON エクスポート – 後処理のためにステップの全データ(リダイレクトチェーンを含む)を保存
  • 拡張可能 – DNS、TLS、タイミング、可視化、エクスポート向けのクリーンな Protocol インターフェースにより、独自の挙動を差し込み可能

クイックサンプル

GET リクエスト:

httptap https://httpbin.io/get

JSON データ付きの POST:

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

サンプル出力

主な機能

リッチなウォーターフォールの可視化

Rich を活用した美しいターミナル UI で、HTTP リクエストの各フェーズの詳細なタイミングの内訳を表示します。

複数の出力形式

  • リッチモード(デフォルト): 色付きで整形された美しいウォーターフォールテーブル
  • コンパクトモード--compact): ログに適した 1 行サマリー
  • メトリクスモード--metrics-only): スクリプトや自動化のための生のメトリクス
  • JSON エクスポート--json): リダイレクトチェーンを含むリクエストの全データ

高度なネットワークインサイト

  • IP ファミリ検出(IPv4/IPv6)付きの名前解決のタイミング
  • TCP 接続確立のタイミング
  • 証明書情報付きの TLS ハンドシェイク分析
  • 最初のバイトまでの時間(TTFB)の計測
  • レスポンスボディ転送のタイミング

リダイレクトチェーンのサポート

--follow フラグで HTTP のリダイレクトを追跡し、チェーンの各ステップのタイミングの内訳を確認できます。

次のステップ

動作要件

  • Python 3.10-3.15
  • macOS、Linux、または Windows
  • 標準的なネットワーク機能以外にシステム依存関係は不要

ライセンス

Apache License 2.0 © Sergei Ozeranskii

つながる

実務経験からの知見を得るには、作者をフォローしてください:

  • Telegram チャンネル - 開発、DevOps、アーキテクチャ、セキュリティ。誇張なしの実体験と実践的な知見。
  • GitHub - オープンソースプロジェクトとコントリビューション

謝辞

素晴らしいライブラリの肩の上に築かれています:

  • httpx - モダンな HTTP クライアント
  • httpcore - 低レベルの HTTP プロトコル実装
  • dnspython - Python 向けの DNS ツールキット
  • Rich - 美しいターミナル整形