Linux curl 命令详解( 四 )

 
抓包信息
[root@iZ28xbsfvc4Z tcpdump]# tcpdump -i any port 9000 -A -s 0

Linux curl 命令详解

文章插图
 
 
-H, --header <header>(HTTP) 要发送到服务端的自定义请求头 。
此选项可多次用于添加/替换/删除多个headers 。
1 curl -H 'Connection: keep-alive' -H 'Referer: https://sina.com.cn' -H 'User-Agent: Mozilla/1.0' http://www.zhangblog.com/2019/06/24/domainexpire/ 
--ignore-content-length(HTTP)忽略Content-Length 头信息 。
-i, --include(HTTP)在输出的内容中包含HTTP 头信息 。
curl -i https://www.baidu.com 
-I, --head(HTTP/FTP/FILE)只获取HTTP头文件 。在FTP或FILE 文件上使用时,curl只显示文件大小和最后修改时间 。
curl -I https://www.baidu.com 
-k, --insecure(SSL)允许curl执行不安全的SSL连接和传输 。所有SSL连接都尝试使用默认安装的CA证书包来确保安全 。
示例
1 [root@iZ28xbsfvc4Z ~]# curl https://140.205.16.113/# 被拒绝 2 curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate. 3 [root@iZ28xbsfvc4Z ~]#4 [root@iZ28xbsfvc4Z ~]# curl -k https://140.205.16.113/# 允许执行不安全的证书连接 5 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 6 <html> 7 <head><title>403 Forbidden</title></head> 8 <body bgcolor="white"> 9 <h1>403 Forbidden</h1>10 <p>You don't have permission to access the URL on this server.<hr/>Powered by Tengine</body>11 </html> 
常用选项四--keepalive-time <seconds>keepalive 时长 。如果使用no-keepalive,则此选项无效 。
如果多次使用此选项,则将使用最后一个选项 。如果未指定,该选项默认为60秒 。
--key <key>(SSL/SSH)私钥文件名 。允许你在这个单独的文件中提供你的私钥 。
对于SSH,如果没有指定,curl尝试如下顺序:’~/.ssh/id_rsa’,’~/.ssh/id_dsa’,’./id_rsa’,’./id_dsa’ 。
如果多次使用此选项,则将使用最后一个选项 。
--key-type <type>(SSL)私钥文件类型 。指定 --key 提供的私钥的类型 。支持DER、PEM和ENG 。如果没有指定,则定为PEM 。
如果多次使用此选项,则将使用最后一个选项 。
-L, --location(HTTP/HTTPS) 跟踪重定向如果服务器报告请求页面已移动到另一个位置(用location: header和3XX响应代码表示),此选项将使curl在新位置上重做请求 。
如果与 -i, --include 或 -I, --head 一起使用,将显示所有请求页面的标题 。
1 [root@iZ28xbsfvc4Z ~]# curl -I -L https://baidu.com/2 HTTP/1.1 302 Moved Temporarily# 302 重定向 3 Server: bfe/1.0.8.18 4 Date: Thu, 04 Jul 2019 03:07:15 GMT 5 Content-Type: text/html 6 Content-Length: 161 7 Connection: keep-alive 8 Location: http://www.baidu.com/ 9 10 HTTP/1.1 200 OK11 Accept-Ranges: bytes12 Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform13 Connection: Keep-Alive14 Content-Length: 27715 Content-Type: text/html16 Date: Thu, 04 Jul 2019 03:07:15 GMT17 Etag: "575e1f60-115"18 Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT19 Pragma: no-cache20 Server: bfe/1.0.8.18 
--limit-rate <speed>指定要使用curl的最大传输速率 。
如果有一个有限的管道,并且希望传输不要使用您的全部带宽,那么这个特性是非常有用的 。
curl --limit-rate 500 http://www.baidu.com/curl --limit-rate 2k http://www.baidu.com/单位:默认字节,除非添加后缀 。附加 “k” 或 “K” 表示千字节,“m” 或 “M” 表示兆字节,而 “g” 或 “G” 表示千兆字节 。例如:200K, 3m和1G 。
给定的速率是整个传输过程中计算的平均速度 。这意味着curl可能在短时间内使用更高的传输速度,但是随着时间的推移,它只使用给定的速率 。
如果多次使用此选项,则将使用最后一个选项 。
--local-port <num>[-num]指定本地的一个端口或端口范围去连接 。
请注意,端口号本质上是一种稀缺资源,有时会很忙,因此将此范围设置为太窄可能会导致不必要的连接失败 。
curl --local-port 9000 http://www.baidu.com/curl --local-port 9000-9999 http://www.baidu.com/ 
-m, --max-time <seconds>允许整个操作花费的最大时间(以秒为单位) 。
这对于防止由于网络或链接变慢而导致批处理作业挂起数小时非常有用 。
也可参见:--connect-timeout 选项


推荐阅读