httpstat визуализирует статистику curl(1)
красиво и ясно.
Это один файл? Сценарий Python, который не имеет зависимостей? и совместим с Python 3? .
Получить httpstat
можно тремя способами:
Загрузите скрипт напрямую: wget https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py
Через pip: pip install httpstat
Через доморощенный (только для macOS): brew install httpstat
Пользователям Windows рекомендуется версия Go от @davecheney. → ссылка для скачивания
Просто:
python httpstat.py httpbin.org/get
Если установка установлена через pip или Brew, вы можете использовать httpstat
в качестве команды:
httpstat httpbin.org/get
Поскольку httpstat
является оболочкой cURL, вы можете передать любой поддерживаемый параметр cURL после URL-адреса (кроме -w
, -D
, -o
, -s
, -S
, которые уже используются httpstat
):
httpstat httpbin.org/post -X POST --data-urlencode " a=b " -v
httpstat
имеет набор переменных среды для управления его поведением. Вот несколько демонстраций использования. Вы также можете запустить httpstat --help
чтобы увидеть полное объяснение.
HTTPSTAT_SHOW_BODY
Установите значение true
, чтобы отображать тело ответа на выходе. Обратите внимание, что длина тела ограничена 1023 байтами и будет усечена, если превысит ее. По умолчанию — false
.
HTTPSTAT_SHOW_IP
По умолчанию httpstat показывает удаленный и локальный IP-адрес/адрес порта. Установите значение false
чтобы отключить эту функцию. По умолчанию true
.
HTTPSTAT_SHOW_SPEED
Установите true
, чтобы отображать скорость загрузки и выгрузки. По умолчанию — 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
По умолчанию httpstat сохраняет тело в файле tmp, для которого установлено значение false
, чтобы отключить эту функцию. По умолчанию true
HTTPSTAT_CURL_BIN
Укажите путь к контейнеру cURL, который нужно использовать. По умолчанию используется curl
из текущей оболочки $PATH.
В этом примере для выполнения HTTP2-запроса используется установленный Brew cURL:
HTTPSTAT_CURL_BIN=/usr/local/Cellar/curl/7.50.3/bin/curl httpstat https://http2.akamai.com/ --http2
HTTP/2 200
...
cURL должен быть скомпилирован с помощью nghttp2, чтобы включить функцию http2 (#12).
HTTPSTAT_METRICS_ONLY
Если установлено значение true
, httpstat будет выводить метрики только в формате json. Это полезно, если вы хотите анализировать данные, а не читать их.
HTTPSTAT_DEBUG
Установите значение true
, чтобы просмотреть журналы отладки. По умолчанию — false
Для удобства вы можете экспортировать эти среды в свой .zshrc
или .bashrc
, например:
export HTTPSTAT_SHOW_IP=false
export HTTPSTAT_SHOW_SPEED=true
export HTTPSTAT_SAVE_BODY=false
Вот некоторые реализации на разных языках:
Перейти: davecheney/httpstat
Это альтернатива httpstat для Go, она написана на чистом Go и не использует внешние программы. Выбирайте его, если вам нравится надежное двоичное исполнение (вообще-то мне это нравится).
Go (библиотека): tcnksm/go-httpstat
Помимо инструмента командной строки, этот проект используется в качестве библиотеки, помогающей отлаживать задержку HTTP-запросов в коде Go, что очень продуманно и полезно, подробнее см. в этой статье.
Баш: b4b4r07/httpstat
Именно это я и хотел сделать в самом начале, но отказался из-за неуверенности в своих навыках bash, молодец!
Узел: yosuke-furukawa/httpstat
b4b4r07 упомянул об этом в своей статье, его также можно использовать в качестве HTTP-клиента.
PHP: талхаш/php-httpstat
Реализация PHP от @talhasch
Некоторые блоки кода в httpstat
скопированы из других моих проектов, посмотрите:
reorx/python-terminal-color Встраиваемая однофайловая библиотека для печати цвета терминала.
reorx/getenv Определение переменной среды с типом.