当前位置:   article > 正文

curl命令常用参数_curl -v

curl -v

curl简介

参考地址:
https://wangchujiang.com/linux-command/c/curl.html

https://segmentfault.com/a/1190000023897623

curl命令 是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTPHTTPSftp等众多协议,还支持POSTcookies认证、从指定偏移处下载部分文件、用户代理字符串限速、文件大小、进度条等特征。

curl常用方法


将远程文件下载到本地-o并指定名称

# 下载远程文件
## curl -o 本地路径/文件名 远程url
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
  • 1
  • 2
  • 3

指定请求方式-X

# -X post	指定post请求方式
curl -X post http://www.baidu.com/api

# -X get	指定get请求方式
curl -X get http://www.baidu.com/api
  • 1
  • 2
  • 3
  • 4
  • 5

发送POST请求中的数据-d

在这里插入图片描述

# -d 发送post请求中的数据
curl -d "username=admin&password=123456" http://example.com/login
  • 1
  • 2

显示响应结果-v

-v参数可以查看http和https请求过程,示例如下:

# -v 显示响应结果
## https://请求https
curl -v https://xx.com

## 不加https默认请求http过程
curl -v baidu.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述


携带用户名/密码-u

# -u 输入账号密码
curl -u 用户名:密码 baidu.com/login
  • 1
  • 2

携带请求头-H

参考: https://www.cnblogs.com/netonline/p/8877324.html

# -H 指定自定义请求头
curl -H "请求头" baidu.com

# 采用-H参数设置http头中需要访问的域名,目标地址为ip地址
[root@kubenode1 ~]# curl -H 'Host:nginx-svc.me' http://172.30.200.22
  • 1
  • 2
  • 3
  • 4
  • 5

查看服务端响应头 -i

# -i 查看服务端响应头
curl - i ip地址:端口号

# 示例
curl -i baidu.com
HTTP/1.1 200 OK
Date: Mon, 14 Feb 2022 14:31:38 GMT
Server: Apache
Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
ETag: "51-47cf7e6ee8400"
Accept-Ranges: bytes
Content-Length: 81
Cache-Control: max-age=86400
Expires: Tue, 15 Feb 2022 14:31:38 GMT
Connection: Keep-Alive
Content-Type: text/html

<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

只显示http response的头信息-I

## -I 只显示http response的头信息
curl -I www.sina.com
  • 1
  • 2

在这里插入图片描述


访问https-k

## -I:只打印响应头信息,不下载响应体
## -k:允许请求使用自签名证书或无效证书,通常在测试时使用
curl -Ik https://localhost
  • 1
  • 2
  • 3

自动跳转-L

参考: https://segmentfault.com/a/1190000023897623
有的网站是自动跳转的,使用 -L 参数,curl就会跳转到新的网址。

## -L 自动跳转到新的网址
curl -L www.sina.com
  • 1
  • 2

模拟dns解析–resolve

# 或者采用--resolve参数模拟dns解析,目标地址为域名
curl --resolve nginx-svc.me:80:172.30.200.21 http://nginx-svc.me

# 或者采用-H参数设置http头中需要访问的域名,目标地址为ip地址
curl -H 'Host:nginx-svc.me' http://172.30.200.22

## -s/--silent  静默模式。不输出任何东西
## -k/--insecure  允许不使用证书到SSL站点
## –resolve      模拟dns解析
curl -sk --resolve translate.googleapis.com:443:142.250.0.90
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

超时时间

使用curl时,有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间

  • 连接超时时间--connect-timeout 参数来指定;
  • 数据传输的最大允许时间-m 参数来指定。

例如:

# 连接超时时间为10秒,最大允许传输时间为20秒
curl --connect-timeout 10 -m 20 "http://XXXXXXX"
  • 1
  • 2

连接超时的话,出错提示形如:

curl: (28) connect() timed out!

数据传输的最大允许时间超时的话,出错提示形如:

curl: (28) Operation timed out after 2000 milliseconds with 0 bytes received


脚本示例

curl() {
# type -P curl 命令来查找系统中名为 curl 的可执行文件的路径
# -L:如果服务器返回的响应是重定向,则跟随重定向
# -q:不输出进度条或其他不必要的信息,以保持输出简洁
# --retry 5:如果请求失败,则重试 5 次
# --retry-delay 10:每次重试之间的延迟时间为 10 秒
# --retry-max-time 60:重试的最长时间为 60 秒
$(type -P curl) -L -q --retry 5 --retry-delay 10 --retry-max-time 60 "$@"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

curl测网站打开速度

curl -o /dev/null -s -w \
    time_namelookup:"\t"%{time_namelookup}"\n"time_connect:"\t\t"%{time_connect}"\n"time_appconnect:"\t"%{time_appconnect}"\n"time_redirect:"\t\t"%{time_redirect}"\n"time_pretransfer:"\t"%{time_pretransfer}"\n"time_starttransfer:"\t"%{time_starttransfer}"\n"time_total:"\t\t"%{time_total}"\n" \
    https://www.google.com/
  • 1
  • 2
  • 3
  • time_namelookup: DNS 域名解析的时候,就是把 https://zhihu.com 转换成 ip 地址的过程
  • time_connect: TCP 连接建立的时间,就是三次握手的时间
  • time_appconnect: SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间
  • time_redirect: 从开始到最后一个请求事务的时间
  • time_pretransfer: 从请求开始到响应开始传输的时间
  • time_starttransfer: 从请求开始到第一个字节将要传输的时间
  • time_total: 这次请求花费的全部时间

在这里插入图片描述


综合应用练习

在这里插入图片描述

# 远程触发Jenkins自动构建
## -X post	指定post请求方式
## -v 显示响应结果
## -u 输入账号密码
## -H 指定自定义请求头
curl -X post -v -u admin:admin -H "Jenkins-Crumb:88a12946e078"  http://192.168.70.131:8080/jenkins/job/ProOne/build?token=自定义token
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/198392
推荐阅读
相关标签
  

闽ICP备14008679号