curl命令技巧备忘

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

你可能感兴趣的:(01-命令备忘,curl,linux,java)