Python小工具之httpstat网络分析

一、简介

Python httpstat是一个基于Python的命令行工具,用于测量HTTP请求的性能和状态信息。它能够向目标服务器发送HTTP请求,并显示详细的统计信息,包括DNS解析时间、建立连接时间、TLS/SSL握手时间、首字节时间、总时间等。这些信息对于排查网络问题、优化Web应用程序以及监控HTTP请求的性能非常有帮助。

httpstat通过封装curl命令,将整个连接过程每个阶段耗时可视化统计出来,就如README所述:"httpstat visualizes curl(1) statistics in a way of beauty and clarity。"

主要功能:

显示HTTP请求的详细性能统计信息。

支持HTTP和HTTPS协议。

提供对不同阶段的时间度量,如DNS解析、连接建立、TLS/SSL握手等。

支持自定义HTTP请求头和参数。

支持跟踪重定向。

支持IPv6。

二、安装使用

1、离线下载安装

wget https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py

mv httpstat.py /usr/bin/httpstat

chmod +x /usrbin/httpstat

2、在线pip安装

pip install httpstat

3、使用案例

httpstat https://www.baidu.com

httpstat将向指定URL发送HTTP请求,并显示详细的性能统计信息,如DNS解析时间、连接建立时间、TLS/SSL握手时间、首字节时间、总时间等。

从这个测试来看,dns这个环节耗时较长,指定新的dns服务器后,再去监测,明显响应时间得到提升。

三、展开使用

在实际应用中,可能需要定期监测你的网站或Web应用程序的性能。使用Python httpstat,可以编写一个脚本,定期测试关键URL,并将性能数据记录下来,以便进行性能分析和长期趋势分析。

python 复制代码
import subprocess
import time

# 要监控的URL列表
urls = ["https://www.example.com", "https://www.example2.com"]

while True:
    for url in urls:
        # 运行httpstat命令并捕获输出
        command = f"httpstat {url}"
        result = subprocess.run(command, shell=True, capture_output=True, text=True)

        # 将性能数据记录到日志文件
        with open("performance.log", "a") as log_file:
            log_file.write(result.stdout)

    # 每隔一段时间执行一次测试
    time.sleep(3600)  # 每小时执行一次
相关推荐
朝朝辞暮i3 分钟前
C++ 第一阶段总结:从零基础到 ROS2 前置语法
开发语言·c++·算法
10年前端老司机5 分钟前
实战分享:基于 PyMuPDF+Qwen-VL 实现图文兼容的 PDF RAG 方案
人工智能·python·agent
2601_9628857211 分钟前
如何用 Python 回测定投策略(定期定额 DCA)?(和一次性买入对比)
开发语言·人工智能·python
蜗牛互联网11 分钟前
Python接入Gemini 3.8 Flash实现票据视觉抽取与规则校验
java·javascript·网络·人工智能·python
小小张说故事13 分钟前
Python 虚拟环境到底怎么选?venv/conda/pipenv/poetry 一张对比表 + 9 个踩坑
python
在世修行18 分钟前
干货:配置持久化与引擎状态的可视化
python·可视化·持久化
周杰偷奶茶23 分钟前
【JavaSE】类和对象基础
java·开发语言
大圣编蚕37 分钟前
C语言核心知识复习:预处理、头文件、强制类型转换、错误处理、递归与内存管理
c语言·开发语言
虎大猫猫39 分钟前
Python教程——按位取反的原理
开发语言·python
Alice-YUE1 小时前
提示词工程:工业级 Prompt 写法与分层组装
java·开发语言·大模型·prompt·提示词工程·system prompt