TGViewer
КИБ КИБ @kibinfo · 1.04K subscribers
Post #652 1.21K

Forwarded from Сергей Озеранский

Решал конкретно свою задачу и в итоге решил, что это можно выкатить в опенсорс.

Мне нужно было задебажить запросы к удаленному API по перформансу - не просто увидеть "запрос занял 800 мс", а получить реальную картину: какие этапы есть у запроса, сколько времени тратится на каждый шаг (DNS, коннект, TLS, ожидание ответа и т д), что именно тормозит. Так и появился httptap.

🔗 Репозиторий: https://github.com/ozeranskii/httptap

Пока не опубликован в PyPI - профукал учетку, пытаюсь восстановить. Если не получится, сделаю новую 🤦‍♂️

PyPi - https://pypi.org/project/httptap/

Почему не httpstat

Когда искал готовые решения, нашел два инструмента:
- https://github.com/reorx/httpstat (Python)
- https://github.com/davecheney/httpstat (Go)

И вот какие там ограничения.

httpstat (Python):
- это по сути обертка над curl - без curl не работает
- проект давно не развивается
- по набору фичей тоже получается бедней, чем у меня

httpstat (Go):
- нативная реализация без curl. Удобно
- но это скорее удобный curl -v с подсветкой
- нет глубокого TLS аудита
- нет JSON экспорта для автоматизации и регрессионных проверок

Короче, ни одно решение не закрывало мои сценарии полностью, плюс захотел свое ,как мне кажется, более интересное.

Что делает httptap по другому

🎯 Чистая Python экосистема
- без внешнего curl и системных зависимостей
- минимум зависимостей: httpx, dnspython, rich
- работает на macOS, Linux, Windows
- можно использовать как CLI и можно использовать как библиотеку внутри питоновского кода

📊 Продвинутый трейсинг
- точные замеры через httpcore trace hooks, а не парсинг вывода curl
- полная цепочка редиректов с таймингами на каждом хопе
- честно помечает метрики как is_estimated, если где то пришлось сделать фолбек
- это не просто "запрос занял N мс", это поэтапный waterfall

🔒 Глубокая TLS инспекция
- версия протокола и cipher suite
- common name сертификата
- сколько дней осталось до истечения (cert_days_left)
- отдельный TLS probe чтобы это измерить и показать отдельно

🌐 Работа с сетью
- определяет IPv4/IPv6
- показывает какой IP был на каждом шаге редиректа

💾 Удобные форматы вывода
- rich waterfall - человекочитаемая табличка с этапами
- compact - однострочник для логов
- metrics-only - только цифры, чтобы парсить в скриптах или в CI
- полный JSON экспорт со всеми метаданными по каждому шагу, включая тайминги DNS/TCP/TLS/TTFB/Transfer, хедеры, сертификаты, summary
- максирование чувствительных заголовков при экспорте в JSON

🔧 Расширяемость
- четкие интерфейсы для DNS резолвера, TLS инспектора, визуализации
- можно подменить компонент и встроить httptap в свою отладку
- это не тупо консолька, это реально пригодно как часть пайплайна

Как это устроено внутри

В отличие от httpstat (python), который полагается на curl, httptap делает все сам внутри Python:
- использует httpx/httpcore и низкоуровневые trace hooks, то есть мы реально видим поведение клиента на уровне сокетов
- лезет в TLS руками и вытаскивает параметры шифрования и сертификат
- полностью контролирует измерения, а не просто печатает чужую статистику

Для чего это вообще
- performance troubleshooting - где именно тормозит API
- regression analysis - сравнение базовой метрики и текущей
- tls audit - что там с сертификатом и шифром
- network diagnostics - DNS, IPv4 vs IPv6, латентность соединения
- redirect chain analysis - как реально ходит запрос до финальной точки

Если вы отлаживаете API и вам нужно не просто "оно отвечает медленно", а понять почему - забирайте, пишите фидбек и контрибутьте. 🚀
GitHub GitHub - ozeranskii/httptap: Rich-powered CLI that breaks each HTTP request into DNS, connect, TLS, wait, and transfer phases with… Rich-powered CLI that breaks each HTTP request into DNS, connect, TLS, wait, and transfer phases with waterfall timelines, compact summaries, or metrics-only output. - ozeranskii/httptap
More from @kibinfo
  1. Aug 14, 2026В результате утечки данных у ShipMonk пострадали 14 000 клиентов Trezor, хакеры украли лич…
  2. Jul 6, 2026V Всероссийская студенческая кибербитва 2026 ждёт тебя Инцидент обнаружен. Есть несколько…
  3. Jun 19, 2026🔥Security Start от Jet Security Team🔥 Jet Security Team открыла набор на стажировку Secu…
  4. Apr 1, 2026👩‍💻 Kubenomicon. • Интересный проект в стиле MITRE ATTACK для Kubernetes, который ориент…
  5. Mar 13, 2026🐶 Четыре трендовые уязвимости в продуктах Microsoft Наши эксперты отнесли к трендовым еще…
  6. Mar 9, 2026Анкета закрыта. Ждём записавшихся 14 марта в стенах МТУСИ. 😎 Анкета на выдачу пропуска и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →