相关文章推荐
鼻子大的杨桃  ·  C# ...·  2 年前    · 

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。 常见参数介绍:

-A/--user-agent <string>          设置用户代理发送给服务器
-b/--cookie <name=string/file>    cookie字符串或文件读取位置
-c/--cookie-jar <file>            操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>         断点续转
-D/--dump-header <file>           把header信息写入到该文件中
-d/--data <data>                  HTTP POST方式传送数据
-e/--referer                      来源网址
-f/--fail                         连接失败时不显示http错误
-H/--header <line>                自定义头信息传递给服务器
-o/--output                       把输出写到该文件中
-O/--remote-name                  把输出写到该文件中,保留远程文件的文件名
-r/--range <range>                检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                       静音模式。不输出任何东西
-T/--upload-file <file>           上传文件
-u/--user <user[:password]>       设置服务器的用户和密码
-w/--write-out [format]           什么输出完成后
-x/--proxy <host[:port]>          在给定的端口上使用HTTP代理
-X/--request <command>            指定什么命令
-v                                显示请求交互的详细信息
                                    * 表示 curl 任务;
                                    > 发送的信息;
                                    < 返回的信息
-#/--progress-bar                 进度条显示当前的传送状态

curl GET请求

  • curl -v 127.0.0.1:8080/login Method:GET
    在这里插入图片描述
  • curl -v 127.0.0.1:8080/upload Method:GET
    在这里插入图片描述
  • curl -v 127.0.0.1:8080/static/images/favicon.ico >> favicon.ico Method: GET (获取文件数据保存到文件中)
    在这里插入图片描述

curl POST请求

  • curl -v 127.0.0.1:8080/login -X POST -d "username=liuyh73&&password=acwab" Method:POST
    在这里插入图片描述
    如果post信息为json格式的数据,则可以使用-H参数来声明请求的Content-Type:
curl -v 127.0.0.1:8080/login -X POST -H "Content-Type:application/json" -d '"username": "liuyh73", "password":"acwab"'
  • curl -v 127.0.0.1:8080/upload -F "uploadfile=@E:/mygo/src/github.com/liuyh73/go-web-form/static/images/favicon.ico" Method:POST
    在这里插入图片描述

ab(apache benchmark)

-n  即requests,用于指定压力测试总共的执行次数。
-c  即concurrency,用于指定的并发数。
-t  即timelimit,等待响应的最大时间(单位:秒)。
-b  即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p  即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u  即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T  即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v  即verbosity,指定打印帮助信息的冗余级别。
-w  以HTML表格形式打印结果。
-i  使用HEAD请求代替GET请求。
-x  插入字符串作为table标签的属性。
-y  插入字符串作为tr标签的属性。
-z  插入字符串作为td标签的属性。
-C  添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
-H  添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A  添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P  添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X  指定使用的和端口号,例如:"126.10.10.3:88"。
-V  打印版本号并退出。
-k  使用HTTP的KeepAlive特性。
-d  不显示百分比。
-S  不显示预估和警告信息。
-g  输出结果信息到gnuplot格式的文件中。
-e  输出结果信息到CSV格式的文件中。
-r  指定接收到错误信息时不退出程序。
-h  显示用法信息,其实就是ab -help。
  • 安装:CentOS环境sudo yum -y install httpd-tools
    在这里插入图片描述
  • ab -c 100 -n 10000 localhost:8080/login
    在这里插入图片描述
    在这里插入图片描述
项目中需要用到Curl频繁调用的情况,发现curl接口调用速度缓慢。为了实现curl高性能,高并发,需要研究如何实现高性能高并发。研究方向有三个。 (1) 长连接。考虑采用长连接的方式去开发。首先研究下长连接和短连接的性能区别。curl内部是通过socket去连接通讯。socket每次连接最为耗时,如果能够复用连接,长时间连接,减少每次socket连接的时间,则可以大大减少时间,提高效率。 (2) 多线程。单个线程下载速度毕竟有限,使用多线程去调用接口。实现高并发高性能,需要考虑资源分配和冲突的问题。 (3) 异步调用。和socket异步调用的原理类似。同步调用会阻塞等待,造成CPU占用率高。
curl-loader curl loader(也称为“omes nik”和“davilka”)是一个用C语言编写的开源工具,模拟成千上万个HTTP/HTTPS和FTP/FTPS客户端的应用程序负载和应用程序行为,每个客户端都有自己的源IP地址。与其他工具不同,curl loader使用的是真正的C编写的客户端协议栈,即基于 libcurl 的 HTTP和FTP协议和 基于 openSSL 的 TLS/SSL,并模拟用户行为,支持登录和身份验证。 该工具可用于各种应用程序服务的性能加载、测试web和f
这种压力测试软件能够测试很多 包括ftp curl-loader 是一个用C语言编写的Web应用测试和模拟负载工具,可模拟成千上万的客户端请求,并且每个请求来自不同的IP地址,支持用户认证、登录等Web交换过程。 curl-loader下载地址:http://sourceforge.net/projects/curl-loader/files/ 项目主页: http://curl-loa
http://www.cnblogs.com/hengwei/p/5392005.htmlab是Apache超文本传输协议(HTTP)的性能测试工具。 其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求.ab -v可以看出其基本信息ab -n1000 -c10 http://localhost:81/t.php这是一个基本命令 -n1000表示
ab压测(apache Benchmark) ab -n 10 -c 1 -p "/data/faceid/bankbill/e26926c0-8d83-4e13-9182-5d849b102a39.jpg" -T application/x-www-form-urlencoded “http://billocr.fcbox.com/predict/1” curl 测试 curl -d "img_path=/data/faceid/bankbill/e26926c0-8d83-4e13-9182-5d84
本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter、go实现的压测工具、云压测),对比这些压测工具,教大家如何选择一款适合自己的压测工具,本文还有两个压测实战项目: 单台机器对HTTP短连接 QPS 1W+ 的压测实战 单台机器100W长连接的压测实战 1、项目说明 1.1 go-stress-testing 1.2 项目体验 2.1 压测是什么 2.2 为什么要压测 2.3 压测名词解释 2.3.1 压测类型解释 2.3.2
curl用于命令行或脚本来传输使用URL语法指定的数据。本文介绍使用curl进行Http请求的相关操作。1.Http操作 一些命令参数: 示例:GET请求curl POST请求curl -X http://www.example.com -d "somedata" curl -X POST http://www.example.com -d "somedata"PUT请求:...
for i in {1..50}; curl http://10.43.95.26:5812/rdk/service/app/example/server/my_service & 转载于:https://www.cnblogs.com/lwcoding/p/6596089.html
1. 简介 curl命令是一个利用 URL 规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括 HTTP、HTTPS、FTP 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等功能。 2. 语法 curl [options] [URL...] 如果需要抓取的一到多个URLs,可以通过通
一、http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试HTTPS类的网站请求。 下载地址:http