说说 Linux 的 curl 命令
cURL,熟悉 Linux 的同学,没有人不知道这个命令吧:)
它有非常非常多的参数,我这里就不复制粘贴了,有需要可以 -h 或者谷歌搜索看看。
我从实用性的角度,说下我比较常用的几个参数:
-v:啰嗦模式,打印请求头部、响应头部,如果是 https 请求会打印握手信息;-H:包含 HTTP 头部,可多次使用-s:不打印进度条-o:指定输出,如果不想看输出的内容,可以 -o /dev/null 丢弃-k:忽略 https 证书校验-d:用来提交数据-X:指定 HTTP method-w:可以输出连接的时间、服务器处理的时间、请求总时间等
简单的参数组合
curl -v -H 'Host: imlht.com.test' \
-H 'Content-Type: application/json' \
-H 'Cookie: uid=123' \
-s \
-o /dev/null \
-X PUT \
-k \
-d '{"name": "John"}' https://10.43.1.101/user/123
有几个小细节,我提一下:
-k 可以忽略 https 的证书校验,调试的时候很好用。
比如上面的 imlht.com.test,一般情况下你是没有这个证书的,但是你又想测试 10.43.1.101 的 /user 接口,此时可以直接跳过测接口的内容。
-d 参数默认的 Content-Type 是表单,如果你提交的数据是 JSON,需要像上面一样指定好 JSON 头部。
有些接口会依赖这个头部解析 body 的内容;另外默认的 method 是 POST,这里我用了 -X PUT 指定 method。
有点复杂的 -w 参数
curl -w "\ntime_namelookup: %{time_namelookup}\ntime_connect: %{time_connect}\ntime_appconnect: %{time_appconnect}\ntime_redirect: %{time_redirect}\ntime_pretransfer: %{time_pretransfer}\ntime_starttransfer: %{time_starttransfer}\n--------\ntime_total: %{time_total}\n" https://im.qq.com/
(省略一部分内容)
...
</body>
</html>
time_namelookup: 0.028
time_connect: 0.030
time_appconnect: 0.136
time_redirect: 0.000
time_pretransfer: 0.136
time_starttransfer: 0.296
--------
time_total: 0.436
- time_namelookup :DNS 解析耗时
- time_connect :TCP 连接建立耗时,也就是三次握手的时间
- time_appconnect :SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间
- time_redirect :从开始到最后一个请求事务的时间
- time_pretransfer :从请求开始到响应开始传输的时间
- time_starttransfer :从请求开始到第一个字节将要传输的时间
- time_total :这次请求花费的全部时间
根据上面的解释,我们可以得到以下的结论:
- DNS 解析耗时:28ms
- TCP 连接时间: pretransfter(136) - namelookup(28) = 108ms
- 服务器处理时间:starttransfter(296) - pretransfer(136) = 160ms
- 内容传输时间: total(436) - starttransfer(296) = 140ms
文章来源于本人博客,发布于 2019-06-16,原文链接:https://imlht.com/archives/188/
说说 Linux 的 curl 命令的更多相关文章
- Linux中Curl命令couldn't connect to host解决方案 php操作Curl(http,https)无法获取远程数据解决方案
本人在做百度账户第三方登录接口,获取百度token,利用php操作curl post方式发送请求token,出现couldn't connect to host错误.经过调试测试,最后终于成功.回头写 ...
- linux中curl命令
linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道翻 ...
- [Linux][转载]Curl命令详解
命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,是一款很强大的http命令行工具,当处在无界面的服务器上的时候,利用curl下载上传文件是较为方便的事情. 语法 ...
- Linux之curl命令详解
url命令是一个功能强大的网络工具,它能够通过http.ftp等方式下载文件,也能够上传文件.其实curl远不止前面所说的那些功能,大家可以通过man curl阅读手册页获取更多的信息.类似的工具还有 ...
- linux使用curl命令行进行接口测试
cURL介绍cURL 是很方便的Rest客戶端,可以很方便的完成许多Rest API测试的需求,甚至,如果是需要先登入或认证的rest api,也可以進行测试,利用curl指令,可以送出HTTP GE ...
- curl命令的基本使用
curl命令的基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOP ...
- linux curl 命令详解,以及实例
linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道翻 ...
- Linux curl命令参数详解--转载
linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态. 一.Linux ...
- [转载] Linux curl命令详解
转载自http://www.linuxdiyf.com/linux/2800.html 命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的htt ...
- 【转】命令行浏览器 curl 命令详解,Linux中访问url地址
CURL --- 命令行浏览器 这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑 1)二话不说,先从这里开始吧! curl http://www.yahoo.com 回车之后,www. ...
随机推荐
- [MAUI]模仿微信“按住-说话”的交互实现
@ 目录 创建页面布局 创建手势控件 创建TalkBox 创建动画 拖拽物动画 按钮激活动画 TalkBox动画 Layout动画 项目地址 .NET MAUI跨平台框架包含了识别平移手势的功能,在之 ...
- 自定义Python版本ESL库访问FreeSWITCH
环境:CentOS 7.6_x64Python版本:3.9.12FreeSWITCH版本 :1.10.9 一.背景描述 ESL库是FreeSWITCH对外提供的接口,使用起来很方便,但该库是基于C语言 ...
- 【介绍】C++五种迭代器
目录 1. 输入迭代器(Input Iterator): 2. 输出迭代器(Output Iterator): 3. 前向迭代器(Forward Iterator): 4. 双向迭代器(Bidirec ...
- NEQR: novel enhanced quantum representation
一.概述 NEQR利用量子叠加和量子纠缠的特性,将数字图像转换为量子态表示,并通过量子门操作进行处理和操作.相较于传统的经典图像表示方法,NEQR具有更高的图像压缩率和更强的安全性,能够在保持图像 ...
- 分享一下.net core mvc的ModelStateExtend
主要代码: using Cracker.Core.Function; using Microsoft.AspNetCore.Mvc.ModelBinding; namespace Cracker.Co ...
- 高级Java程序员必问,Redis事务终极篇
1. 简介 1.1 什么是Redis事务 Redis事务(Transaction)通过将多个Redis操作封装为一个原子性的操作序列,确保在事务执行过程中,不会受到其他客户端的干扰.从而在保证数据一致 ...
- 高精度------C++
高精度运算------C++ (加减乘除) 例:ZOJ2001 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1001 The ...
- 音视频八股文(5)--SDL音视频渲染实战。会使用就行,不需要深究。
01-SDL子系统 SDL将功能分成下列数个子系统(subsystem): SDL_INIT_TIMER:定时器 SDL_INIT_AUDIO:音频 SDL_INIT_VIDEO:视频 SDL_INI ...
- 2020-11-22:mysql中,什么是filesort?
福哥答案2020-11-22:[答案来自此链接:](http://bbs.xiangxueketang.cn/question/412)如果mysql在排序的时候没有使用到索引那么就会输出 using ...
- 2021-01-30:redis中,Pipeline有什么好处?
福哥答案2021-01-30:可以将多次 IO 往返的时间缩减为一次,减少多次IO延迟的开销.前提是 pipeline 执行的指令之间没有因果相关性. 多个指令之间没有依赖关系,可以使用 pipeli ...