curl简介
curl [options / URLs]
curl是一种利用URL语法用于服务器传输数据的工具,支持如下协议:
- DICT
- FILE
- FTP \ FTPS
- GOPHER
- HTTP \ HTTPS
- IMAP \ IMAPS
- LDAP \ LDAPS
- POP3 \ POP3S
- RTMP \ RTSP
- SCP
- SFTP
- SMB \ SMBS
- SMTP \ SMTPS
- TELNET
- TFTP
还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。
1 用法1:curl查看或下载网页源码
#### 1 查看网页
curl http://www.baidu.com
#### 2 下载页面到文件
curl http://www.baidu.com -o baidu
#### 3 下载页面到文件 --silent 不显示进度
curl http://www.baidu.com -o baidu --silent
#### 4 下载页面到文件 --progress 显示进度条
curl http://www.baidu.com -o baidu --progress
2 用法2:curl设置参照页字符串
参照页是位于HTTP头部中的一个字符串,用来表示用户是从哪个页面到达当前页面的,如果用户点击网页A中的某个连接,那么用户就会跳转到B网页,网页B头部的参照页字符串就包含网页A的URL。
使用--referer
选项指定参照页字符串:
curl --referer http://www.google.com http://man.linuxde.net
3 用法3:curl设置cookies
--cokkie "COKKIES"
选项来指定cookie,多个cookie使用分号分隔;
curl http://man.linuxde.net --cookie "user=root;pass=123456"
curl --cookie "name=zhangsan" http://localhost:8080/login
--cookie-jar
或者-c
将cookie 另存为一个文件
curl www.baidu.com --cookie-jar baidu_cookie
4 用法4:curl设置带宽
--limit-rate
限制下载速度(单位 k千字节 m兆字节)
curl URL --limit-rate 50k
--max-filesize
指定可下载的最大文件大小
curl URL --max-filesize bytes
5 用法5: curl认证
使用curl选项 -u 可以完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码:
$ curl -u name:password [URL]
curl -u user:pwd http://man.linuxde.net
curl -u user http://man.linuxde.net
6 用法6:打印头部信息
-I
或者--head
选项只打印头部http信息(不显示内容)-i显示内容
fwd@fwd:~/00-RUN/02-test$ curl -I www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 277
Content-Type: text/html
Date: Sun, 11 Aug 2019 05:27:28 GMT
Etag: "575e1f7c-115"
Last-Modified: Mon, 13 Jun 2016 02:50:36 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
7 用法7 :curl完成http动作
-X
或者--reques
: 发送http请求,默认情况为GET
$ curl -X POST [URL] //eg: curl -X POST blog.xiaobnema.cn
$ curl -X DELETE [URL] //eg: curl -X DELETE blog.xiaobenma.cn
8 用法8:curl发送json
curl -H 'Content-Type:application/json' -d '[JSON string]' [URL]
curl -H "Content-Type: application/json" -X POST -d '{"name": "yuzhan", "age" : 18}' http://172.24.145.95:8080
9 用法9:curl监控网页响应时间
#### 1 监控网页响应时间
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.baidu.com"
#### 2-监控站点可用性
curl -o /dev/null -s -w %{http_code} "http://www.baidu.com"
10 用法10:ftp下载、上传
#### 1-下载
curl -u name:passwd ftp://ip:port/path/file
curl ftp://name:passwd@ip:port/path/file
#### 2-ftp上传
curl -T localfile -u name:passwd ftp://upload_site:port/path/
#### 3-http上传
curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi