curl的参数讲解和示例及测试网站的打开速度

目录

1.curl -o 将远程文件下载到本地-o并指定目录

​2.curl -X指定请求方式

3.curl -v可以查看http或者https的请求过程

4.curl -u携带用户或密码

5.curl -H“请求头“ baidu.com

6.curl -I 只显示http reponse的头信息

7.curl -IK 只显示http reposonse的头信息

8.curl -L自动跳转

9.curl –connect-timeout 10 -m 20 “超过时间

10.curl测网站打开速度


curl(Client for URLs)是一个常用的命令行工具,用于与服务器进行数据的传输。它支持多种协议,如HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP、LDAPS、FILE、POP3、IMAP、SMTP、RTSP以及RTMP等。curl 允许用户发送 HTTP 请求,并接收来自服务器或其他协议的服务器的响应。

以下是 curl 的一些主要作用:

数据传输:发送 GET、POST、PUT、DELETE 等 HTTP 请求。

                   上传和下载文件,支持断点续传。

调试:开发者可以使用 curl 来测试 RESTful API 的响应,或者检查 HTTP 请求的头部和正文。

           通过详细的输出选项,可以显示请求的完整头部和响应的详细信息。

自动化:脚本中可以使用 curl 来自动化地与 Web 服务进行交互。

              自动化测试、部署、数据抓取等场景经常用到 curl。

模拟浏览器行为:可以通过设置 User-Agent、Cookie、Referer 等头部信息来模拟浏览器的行为。

                             支持 Cookie 文件的读写,方便处理需要登录的页面。

其他协议支持:除了 HTTP/HTTPS 外,还支持 FTP、SFTP 等协议,方便文件传输。

代理和重定向:支持通过 HTTP、SOCKS4、SOCKS5 代理进行数据传输。

                          支持 URL 重定向。

输出格式:可以将输出保存为文件,或者将输出格式化为 JSON、XML 等。

安全性:支持 SSL/TLS,确保数据在传输过程中的安全性。

使用 curl 时,可以通过命令行参数来指定各种选项,如 URL、请求方法、请求头部、请求体等。这使得 curl 成为一个非常强大且灵活的工具。

1.curl -o 将远程文件下载到本地-o并指定目录

2.curl -X指定请求方式

3.curl -v可以查看http或者https的请求过程

4.curl -u携带用户或密码

5.curl -H“请求头“ baidu.com

6.curl -I 只显示http reponse的头信息

7.curl -IK 只显示http reposonse的头信息

#-I:纸打印响应头的信息,不下载响应体

访问https-k

# -k:允许请求使用自签名的整数或无效证书,通常在测试的时候用

8.curl -L自动跳转

有的网站是自动跳转的,使用-L参数,curl就会跳转到新的网址

9.curl –connect-timeout 10 -m 20 “超过时间

连接时间用—connect-timeout 参数来指定

数据传输的最大允许时间用-m参数在指定

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

curl(28)connect()timed out

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

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

10.curl测网站打开速度

写个脚本如下:

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 "$@"

}

测试:

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/

time_namelookup: DNS 域名解析的时候,就是把 https://zhihu.com 转换成 ip 地址的过程

time_connect: TCP 连接建立的时间,就是三次握手的时间

time_appconnect: SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间

time_redirect: 从开始到最后一个请求事务的时间

time_pretransfer: 从请求开始到响应开始传输的时间

time_starttransfer: 从请求开始到第一个字节将要传输的时间

time_total: 这次请求花费的全部时间

  • 26
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值