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 用戶,建議使用 @davecheney 的 Go 版本。 → 下載鏈接
簡單地:
python httpstat.py httpbin.org/get
如果透過pip或brew安裝,則可以使用httpstat
作為指令:
httpstat httpbin.org/get
因為httpstat
是 cURL 的包裝,所以您可以在 url 之後傳遞任何 cURL 支援的選項(除了-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 bin 路徑。預設是來自目前 shell $PATH 的curl
。
本範例使用brew安裝的cURL來發出HTTP2請求:
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
除了作為 cli 工具之外,該專案還用作庫來幫助調試 Go 程式碼中 HTTP 請求的延遲,非常周到且有用,請參閱本文
重擊:b4b4r07/httpstat
這正是我一開始想做的,但由於對自己的 bash 技術不自信而放棄了,幹得好!
節點:yosuke-furukawa/httpstat
b4b4r07 在他的文章中提到了這一點,也可以用作 HTTP 用戶端。
PHP:talhasch/php-httpstat
@talhasch 的 PHP 實現
httpstat
中的一些程式碼區塊是從我的其他專案複製的,看看:
reorx/python-terminal-color 用於列印終端顏色的嵌入式單一檔案庫。
reorx/getenv 帶類型的環境變數定義。