Linux之如何使用curl命令

温馨提示:文章已超过2018天没有更新,可能存在链接失效,相关教程仅供参考

简介

curl是一个命令行访问URL的工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。可以用它构造http request报文,且可以解析服务器返回的http response,额外还支持cookie特性,可以用curl完成web浏览器的基本功能,curl还支持HTTPS/FTP/FTPS/TELNET/LDAP等协议。

常用选项

命令说明
-A指定客户端的用户代理标头,即User-Agent。
-b用来向服务器发送 Cookie。
-c将服务器设置的 Cookie 写入一个文件。
-d用于发送 POST 请求的数据体。
--data-urlencode等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码。
-e用来设置 HTTP 的标头Referer,表示请求的来源。
-F用来向服务器上传二进制文件。
-G用来构造 URL 的查询字符串。
-H添加 HTTP 请求的标头。
-i打印出服务器回应的 HTTP 标头。空一行并输入网页源代码
-I (大写的i)向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 标头打印出来。
-k指定跳过 SSL 检测,不验证ssl证书是否正确
-L会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
--limit-rate限制 HTTP 请求和回应的带宽,模拟慢网速的环境。
-o将服务器的回应保存成文件,等同于wget命令。
-s将不输出错误和进度信息。
-S指定只输出错误信息,通常与-s一起使用。
-u用来设置服务器认证的用户名和密码。
-v输出通信的整个过程,用于调试。
-x
指定 HTTP 请求的代理。

例子

指定客户端的用户代理标头,即User-Agent。

$ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://www.ahaoyw.com

指定一个标头Cookie: foo=bar,向服务器发送一个名为foo、值为bar的 Cookie。

curl -b 'foo=bar' https://www.ahaoyw.com

命令读取本地文件cookies.txt,里面是服务器设置的 Cookie(参见-c参数),将其发送到服务器。

$ curl -b cookies.txt https://www.ahaoyw.com

将Referer标头设为AHAOYW。

$ curl -e 'AHAOYW' https://www.ahaoyw.com

收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码。

$ curl -i https://www.ahaoyw.com

收到服务器回应后,输出服务器回应的标头,小写的 “i” 是会空一行,再输出网页的源码,大写的I没有

$ curl -I https://www.ahaoyw.com

直接跳过验证证书不检查服务器的 SSL 证书是否正确

$ curl -k https://www.ahaoyw.com

用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境。

$ curl --limit-rate 200k https://www.ahaoyw.com

参数将服务器的回应保存成文件,等同于wget命令。

$ curl -o haha.html https://www.ahaoyw.com

输出通信的整个过程,用于调试。这个功能比较少用

$ curl -v https://www.ahaoyw.com

指定 HTTP 请求通过代理链接地址:8080的 socks5 代理发出,如果没有指定代理协议,默认为 HTTP。

$ curl -x socks5://ahaoyw:代理链接地址:8080 https://www.ahaoyw.com


© 除非注明,否则均为阿豪运维笔记原创文章,转载或复制请以超链接形式并注明出处

取消
微信二维码
微信二维码
支付宝二维码