hb:一个简单的 http/web bench 工具

两周没写东西了,主要是在学习一点C,参考 webbench 写了个工具。刚刚写完,也不知道好不好用,同学们有兴趣也帮我测一测,提点意见。

项目位于 https://github.com/heiing/hb

克隆下来后,使用 make 编译即可。

./hb [OPTIONS] URL
OPTIONS:
  -h | --help                  Print this information and exit.
  -v | --version               Display program version and exit.
  -c | --clients <n>           Run <n> clients, default one.
  -t | --time <second>         Run <second> seconds, default 30.
  -m | --method <n>            Use HTTP method, default GET:
                                  GET,POST,PUT,DELETE,HEAD,TRACE,PATCH
                                  PROPFIND,COPY,MOVE
  -p | --protocol <n>          Use HTTP protocol, default 2:\n"
                                 0 - HTTP/0.9
                                 1 - HTTP/1.0
                                 2 - HTTP/1.1
  -f | --file <path>           Use file for POST/PUT method.
  -P | --proxy <server:port>   Use proxy for request.

示例:

./hb -m POST -f postdata.txt http://example.com/foo

可以通过 -f 参数指定请求的数据,数据文件为 http 协议格式,使用一个空行分隔 head 和 body。不需要头部时,以一个空行开始。例如:

name=hb&version=0.0.1

包含头部的示例:

User-Agent: my agent 1.0
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=1234567890123456

name=hb&version=0.0.1

当程序运行结束后,按响应码统计请求数。

时间: 2024-08-28 02:18:41

hb:一个简单的 http/web bench 工具的相关文章

一个简单的Java web服务器实现

一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 程序执行步骤 创建一个ServerSocket对象: 调用ServerSocket对象的accept方法,等待连接,连接成功会返回一个Socket对象,否则一直阻塞等待: 从Socket对象中获取InputStream和OutputStream字节流,这两个流分别对应request请求和response响应: 处理请求:读取InputStream字节流信息,转成字

一个简单的java web 项目

本文实现一个简单的 java web 项目,包括以下5个功能: 1. 登录 用户默认主页index.jsp , 可选择登录功能,输入用户名和密码,若登录成功,则进入产品管理总页面main.jsp.若不成功仍退回index.jsp 2. 注册 用户默认主页index.jsp ,  可选择注册功能 ,若注册,则进入 register.jsp 3. 管理产品(增加,删除,查看) 登录成功后,进入产品管理总页面main.jsp.第一次进入main.jsp,默认显示所有产品列表.在此页面上更实现 查询某个

SharePoint创建一个简单的Visio Web部件图

SharePoint创建一个简单的Visio Web部件图 Visio有许多强大的Mash-up混聚功能,使它可以轻松集成到SharePoint 2010中. 1. 打开Visio 2010,创建新的ITIL图. 2. 绘图如下: 3. 点击后台选项卡(左上角). 4. 点击另存为,选择位置,点击确定,输入Keyword,点击确定. 5. 在页面上添加Web部件. 6. 编辑Web部件,将上图的URL填上去. SharePoint创建一个简单的Visio Web部件图,布布扣,bubuko.co

汇编语言实现一个简单的十六进制转储使用工具

一个简单的十六进制转储使用工具,演示了汇编语言过程的使用. ; 可执行程序名 : hexdump2 ; 版本 : 1.0 ; 创建日期 : 7/9/2016 ; 最后修改 : 7/9/2016 ; 作者 : Moonlight Poet ; 描述 : 一个简单的十六进制转储使用工具,演示了汇编语言过程的使用. ; ; 使用以下命令生成该程序 : ; nasm -f elf64 -g -F stabs hexdump2.asm ; ld -o hexdump2 hexdump2.o ; SECTI

nodejs + jquery Mobile构建一个简单的移动web (客户端)

前面展示了使用nodejs技术和jqm来搭建一个简单的支持CRUD操作应用的服务端部分(参见:nodejs + jquery Mobile构建一个简单的移动web(服务端) ),服务端采用nodejs技术实现,使用了mongodb数据库和轻量级web开发框架expressJS, 路由使用restful风格,所以你也可以使用restify来开发. 客户端的实现主要通过ajax调用实现.使用jade模板引擎. 客户端主要包含两个文件:layout.jade和index.jade 1. layout.

编写一个简单的js模板替换工具 rtt----replace templete tool

最近一段时间在修改自己的个人在线简历.  这个在线简历用到了css3来制作3D的旋转效果, 因此会有兼容性问题, 针对于不支持css3的3D透视的浏览器, 比如 IE,  360等等, 我使用的是另一套css文件兼容.  针对于移动端浏览器, 尽管基本都是webkit内核, 但经测试发现3D效果并不流畅, 因此移动端是识别userAgent切换到另一套非3D页面.  因为没用任何数据库, 那么问题就来了, 移动端和pc端两套页面是共用的一套数据, 我想到的方法有两个: 一是页面加载之后用ajax

从零构建一个简单的 Python Web框架

为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何工作的很感兴趣,因为你想要成为一位更好的 web 开发者. 接下来的笔墨将着重于最后一点.这篇文章旨在通过对设计和实现过程一步一步的阐述告诉读者,我在完成一个小型的服务器和框架之后学到了什么.你可以在这个代码仓库中找到这个项目的完整代码. 我希望这篇文章可以鼓励更多的人来尝试,因为这确实很有趣.它让

仿webqq做的一个webos桌面效果,web聊天工具

QQ技术交流群:159995692 /--------   临时开放的测试       帐号/密码:[88888888/1;666666/1]    ---------/ 正如大家所知的ExtJs在Ajax效果方面的强大效果,加上可自定义扩展组件,是吸引企业和开发人员的一个很重要的部分. 脚本语言要写好,特别是ExtJs,是一个很不容易的过程的.本人从ExtJs2一路走来,心酸自知.ExtJs2以来版本一直不稳定,即使是最原始的类库也是一直在修改的.为了加强兼容性,可扩展性,一定要使用大量的继承

一个简单易用的代码生成工具

大约5年前,我利用3周业余时间写一个CodeBuilder代码生成工具,虽然市场上也有很多代码生成工具,而且有些IDE里也集成了相关的代码生成.当时就是觉得好玩练手,希望写一个简单实用的.就是能通过数据库中表或视图结构生成公共CRUD代码,而且希望能支持各种数据库(MySql,sqlserver,oracle等)及各种程序设计语言(java,C#,ruby,python,php,xml等).最近有各路朋友与兄弟问我有什么不错的代码生成功工具,虽然我已经多年不用代码生成,但是发现每过一段时间就有人