一、什么是 curl
在 Linux 中,curl 是一个利用 URL 规则在命令行下工作的文件传输工具,可以说是一款很强大的 http 命令行工具。
它支持文件的上传和下载,是综合传输工具,但按传统,习惯称 url 为下载工具。
curl 是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl 设计为无用户交互下完成工作;curl 提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp 上传下载、HTTP POST、SSL 连接、cookie 支持、断点续传...。
二、curl 常用选项示例
发送带参数的请求 默认是 post 方式提交请求
curl -d ‘params’ URL
以 URL 参数的形式发送 get 请求
curl -G -d ‘parms’ URL
指定请求方法类型
curl -X [HTTP_METHOD]
指定 http 代理信息
curl -x socks5://aa:aa@aa.com:080
请求显示请求头和响应头
curl -v
打印出服务器的响应头
curl -l
保存 cookie 到指定文件
curl -c ‘file of cookie’
发送 cookie 从字符串或者文件
curl -b ‘file of cookie| string’
设置请求头 User-Agent
curl -A “mozilla”
设置请求头 Referer
curl -e “http://a.com”
指定请求头可以带多个
curl -H ‘Header info’
获取请求页面或接口的请求头信息
curl -l URL
将响应头保存到文件
curl -D ‘file of header’
将响应体保存到文件,服务器的回应保存为文件 =wget
curl -o ‘file of body’
将响应体保存到文件,保存并将 url 最后作为文件名
curl -O ‘file of body’
等同于 -d 区别是会自动将发送的数据进行 URL 编码
curl –data-urlencode
用来向服务器上传二进制文件,可以执行 mine 类型
curl -F ‘file=@a.png;type=image/png;filename=aa.png’ url
如果没有指定 mime 类型,默认为 application/octet-stream
也可以指定名称,上述文件原名称为 a.png,服务器收到的为 aa.png
跳过 ssl 检测
curl -k
让 Http 请求跟随重定向,curl 默认不会重定向
Curl -L
限制带宽,模拟网络环境
Curl –limit-rate 200K URL
不输出错误和进度信息
Curl -s
只输出错误信息,命令没有输出
Curl -S