简介
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。
命令
-A
参数指定客户端的 User-Agent。curl 的默认用户 UA 是 curl/[version]
curl -A "UA"
-b
参数用来向服务器发送 Cookie。也可以读取本地文本文件(cookie)发送至服务器
curl -b "token=888"
curl -b cookie.txt
-c
参数将服务器设置的 Cookie 写入一个文件
curl -c cookie.txt
-d
参数用于发送 POST 请求的数据体
curl -d "param=888"
--data-urlencode
参数等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码
curl --data-urlencode "param=测试"
-e
参数用来设置 HTTP 的标头 Referer,表示请求的来源
curl -e "https://www.google.com"
-F
参数用来向服务器上传二进制文件
#上面命令会给 HTTP 请求加上标头 Content-Type: multipart/form-data,然后将文件 test.jpg 作为 file 字段上传。
curl -F "[email protected]"
#也可以知道 MIME
curl -F "[email protected];type=image/jpeg"
#也可以重命名
curl -F "[email protected];filename=888.jpg"
-G
参数用来构造 URL 的查询字符串
#命令会发出一个 GET 请求,实际请求的 URL 为 https://www.google.com/search?q=kitties&count=20。如果省略--G,会发出一个 POST 请求。
curl -G -d 'q=param' -d 'count=20'
-H
参数添加 HTTP 请求的标头
#所有标头都可以设置,cookie,UA,来源等.
curl -H 'Accept-Language: en-US'
-i
参数打印出服务器回应的 HTTP 标头
curl -i https://www.example.com
-I
参数向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 标头打印出来
#--head 参数等同于-I
curl -I https://www.example.com
-k
参数指定跳过 SSL 检测;-L
参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向;--limit-rate
用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境;-o
参数将服务器的回应保存成文件,等同于 wget 命令;-O
参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名;-s
参数将不输出错误和进度信息;-S
参数指定只输出错误信息,通常与-s 一起使用;-u
参数用来设置服务器认证的用户名和密码;
curl -u 'bob:12345'
-v
参数输出通信的整个过程,用于调试;-x
参数指定 HTTP 请求的代理;
#socks5
curl -x socks5://user:pass@proxy.com:8080
#HTTP
curl -x user:pass@myproxy.com:8080
总结
cURL是一个利用 URL 语法在命令行下工作的文件传输工具,1997 年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL 还包含了用于程序开发的 libcurl。
cURL 支持的通信协议有 FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP 和 RTSP。
curl 还支持 SSL 认证、HTTP POST、HTTP PUT、FTP 上传, HTTP form based upload、proxies、HTTP/2、cookies、用户名+密码认证(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。
>> 所有文章均基于分享的原则,所有言论均个人观点,请注意全部都不是推荐,是分享!分享!分享!
暂无评论内容