当前位置: 首页 > news >正文

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,并将性能数据记录下来,以便进行性能分析和长期趋势分析。

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)  # 每小时执行一次

相关文章:

Python小工具之httpstat网络分析

一、简介 Python httpstat是一个基于Python的命令行工具,用于测量HTTP请求的性能和状态信息。它能够向目标服务器发送HTTP请求,并显示详细的统计信息,包括DNS解析时间、建立连接时间、TLS/SSL握手时间、首字节时间、总时间等。这些信息对于排…...

挑战房市预测领头羊:KNN vs. 决策树 vs. 线性回归

挑战房市预测领头羊(KNN,决策树,线性回归) 1. 介绍1.1 K最近邻(KNN):与邻居的友谊1.1.1 KNN的基础1.1.2 KNN的运作机制1.1.3 KNN的优缺点 1.2 决策树:解码房价的逻辑树1.2.1 决策树的…...

Docker 基础知识

Docker 基础知识 什么是 Docker? Docker 是一个开源平台,用于开发、发布和运行应用程序。Docker 通过将应用程序及其依赖项打包到一个称为容器的可移植单元中来工作。 Docker 的核心组件是什么? Docker Engine:核心组件&#xff0…...

视频主题Qinmei 3.0视频站源码_WordPress影视视频主题/附详细安装教程

Qinmei 3.0主题主要是将 wordpress 改造成纯 api 的站点,以便实现前后端分离的技术栈,目前的进度已经大致完成,唯一的问题就是需要安装 JWT token 插件。 功能介绍: 支持豆瓣以及 bangumi 的一键获取信息, 豆瓣 api 目前使用的是…...

数字看板:跨行业需求下的创新与升级

在当今这个数据驱动的时代,数字看板作为信息展示与决策支持的重要工具,正逐步渗透到各行各业之中。从智慧城市到智能制造,从金融分析到医疗健康,数字看板以其直观、动态、高效的特点,成为了连接数据与决策者的桥梁。本…...

02、爬虫数据解析-Re解析

数据解析的目的是不拿到页面的全部内容,只拿到部分我们想要的内容内容。 Re解析就是正则解析,效率高准确性高。学习本节内容前需要学会基础的正则表达式。 一、正则匹配规则 1、常用元字符 . 匹配除换行符以外的字符 \w 匹配字母或数字或下划…...

掀桌子了!原来是咱们的大屏设计太酷,吓着前端开发老铁了

掀桌子了!原来是咱们的大屏设计太酷,吓着前端开发老铁了 艾斯视觉观点认为:在软件开发的世界里,有时候创意和设计的火花会擦得特别亮,以至于让技术实现的伙伴们感到既兴奋又紧张。这不,我们的设计团队刚刚…...

JavaScriptfor循环的树形菜单栏·

在此声明一下嗷兄弟闷儿!我没写样式纯粹是console.log()打印控制面板的! 全局声明一个data; let data; 然后去获取到json的假数据 let xhr new XMLHttpRequest(); // 设置请求方式和请求地址 xhr.open(get, ./js/menu.json, true); // 发…...

easyExcel 3.x以上版本导入数据后,再把错误信息导出,外加自定义RGB背景色、行高、宽度等

easyExcel 3.x以上版本导入数据后,再把错误信息导出,外加自定义RGB背景色 背景 由于项目中用的easypoi导入的数据量大了,会导致OOM的问题,所以要求更换为easyExcel框架做导入。话不多说,这里只做一个导入的示例&…...

React的img图片路径怎么写

在React中,图片路径的写法取决于你的图片资源是如何被管理和存放的。这里有几种常见的情况和对应的写法: 1. 图片作为React组件的静态资源 如果你的图片文件放在React项目的public文件夹下(这是Create React App项目的默认结构)…...

UGUI优化篇--UGUI合批

UGUI合批 UGUI合批规则概述UGUI性能查看工具合批部分的特殊例子一个白色image、蓝色image覆盖了Text,白色image和Text哪个先渲染 Mask合批Mask为什么会产生两个drawcallMask为什么不能合批Mask注意要点 RectMask2D为什么RecMask2D比Mask性能更好主要代码RectMask2D注…...

FineBI连接MySQL5.7

一、在FineBI系统管理中,点击【新建数据库连接】 选择MySQL数据库 配置数据库连接,如下,其中数据库名称就是需要连接的目标数据库...

基于tkinter的学生信息管理系统之登录界面和主界面菜单设计

目录 一、tkinter的介绍 二、登陆界面的设计 1、登陆界面完整代码 2、部分代码讲解 3、登录的数据模型设计 4、效果展示 三、学生主界面菜单设计 1、学生主界面菜单设计完整代码 2、 部分代码讲解 3、效果展示 四、数据库的模型设计 欢迎大家进来学习和支持&#xff01…...

web基础以及http协议

⼀、web基本概念和常识 Web:为⽤户提供的⼀种在互联⽹上浏览信息的服务,Web 服 务是动态的、可交 互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联⽹服务,这些服务包括信息浏览 服务,以及各种交互式服务,包括…...

DataEase一键部署:轻松搭建数据可视化平台

DataEase是一个开源的数据可视化和分析工具,旨在帮助用户轻松创建和共享数据仪表盘。它支持多种数据源,包括关系型数据库,文件数据源,NoSQL数据库等,提供强大的数据查询、处理和可视化功能。DataEase 不仅是一款数据可…...

网络安全相关竞赛比赛

赛事日历(包含全国所有网络安全竞赛) https://datacon.qianxin.com/competition/competitions https://www.ichunqiu.com/competition/all 全国网络安全竞赛 名称链接全国大学生信息安全竞赛http://www.ciscn.cn/信息安全与对抗技术竞赛(In…...

Vscode——如何快速搜索项目工程中的某个文件的位置

第一步:按 shift ctrl p 第二步:然后把 > 删除 第三步:输入文件名称即可...

Kubernetes 正在弃用 Docker?Docker将何去何从?

一段时间以来,当人们想到容器时,似乎都会想到Docker和Kubernetes。在构建和运行容器方面,Docker 一直是大名鼎鼎的品牌,而在管理和编排容器方面,Kubernetes 一直是大名鼎鼎的品牌。听到 Kubernetes 从 1.20 版开始不再…...

编程语言「描述符」漫谈——以C++与Rust为例的行为声明与类型描述

编程语言中有三种描述符: 声明符: 表示一种动作, 比如创建变量, 定义函数等等;说明符: 也就是类型说明符, 表示一种数据类型;修饰符: 表示动作或类型的属性, 例如不可变…… swift语言就是严格遵循这些描述符的, 例如, objc是修饰符 , 表示编译成OC兼容函数, func 是声明符, …...

电脑屏幕录制软件哪个好?推荐3款,满足各种录制需求

大家好,今天和大家来聊一个既实用又有点神秘的话题——电脑屏幕录制软件哪个好?这是个让众多网友头疼的问题,毕竟谁不想拥有一款既好用又好玩的录制神器呢? 首先,我们得明确屏幕录制软件可不是简单地录屏而已&#xf…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

MySQL的pymysql操作

本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注:文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件:STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...

LeetCode 0386.字典序排数:细心总结条件

【LetMeFly】386.字典序排数:细心总结条件 力扣题目链接:https://leetcode.cn/problems/lexicographical-numbers/ 给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。 你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。…...

DL00871-基于深度学习YOLOv11的盲人障碍物目标检测含完整数据集

基于深度学习YOLOv11的盲人障碍物目标检测:开启盲人出行新纪元 在全球范围内,盲人及视觉障碍者的出行问题一直是社会关注的重点。尽管技术不断进步,许多城市的无障碍设施依然未能满足盲人出行的实际需求。尤其是在复杂的城市环境中&#xff…...

Tableau for mac 驱动

Tableau 驱动程序安装指南 对于希望在 Mac OS 上使用 Tableau 进行数据分析的用户来说,确保正确安装相应的驱动程序至关重要。Tableau 支持多种数据库连接方式,并提供官方文档指导如何设置这些连接。 安装适用于 Mac 的 JDBC 或 ODBC 驱动程序 为了使…...

K8S认证|CKS题库+答案| 8. 沙箱运行容器 gVisor

目录 8. 沙箱运行容器 gVisor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、官网找模板 3)、创建 RuntimeClass 4)、 将命名空间为 server 下的 Pod 引用 RuntimeClass 5&#xff09…...