curl客户端的url工具命令,参数非常多,功能非常强大,灵活使用
curl默认不带参数
不带任何参数默认访问的是网站信息内容
curl http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.61.1",
"X-Amzn-Trace-Id": "Root=1-6267a4ec-5772a0974c2ba0007de43fb2"
},
"origin": "120.76.204.238",
"url": "http://httpbin.org/get"
}
curl -A -H
-A :指定客户端的代理标头 -H:直接指定标头,更改User-Agent
curl -A "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-6267a87a-265b63b0261f7af115616cd3"
},
"origin": "120.76.204.238",
"url": "http://httpbin.org/get"
}
curl -H "User-Agent:GOOGLE" http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "GOOGLE",
"X-Amzn-Trace-Id": "Root=1-6267a827-3760a0e076b46b234795f23c"
},
"origin": "120.76.204.238",
"url": "http://httpbin.org/get"
}
curl -e
-e:自定义设置 HTTP 的标头Referer,表示请求的来源
curl -e 'http://itclq.top:/curl' http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"Referer": "http://itclq.top:/curl",
"User-Agent": "curl/7.61.1",
"X-Amzn-Trace-Id": "Root=1-6267aa38-73c4c82f5a5138b05d8f8c84"
},
"origin": "120.76.204.238",
"url": "http://httpbin.org/get"
}
curl -i
-i 参数打印出服务器回应的 HTTP 标头。 下面命令收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码
curl -i http://httpbin.org/get
HTTP/1.1 200 OK
Date: Tue, 26 Apr 2022 08:20:07 GMT
Content-Type: application/json
Content-Length: 255
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.61.1",
"X-Amzn-Trace-Id": "Root=1-6267ab37-550d06082e97e64c761ba186"
},
"origin": "120.76.204.238",
"url": "http://httpbin.org/get"
}
curl -l
-I参数向服务器发出 HEAD 请求
curl -I http://httpbin.org/get
HTTP/1.1 200 OK
Date: Tue, 26 Apr 2022 08:23:26 GMT
Content-Type: application/json
Content-Length: 255
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
curl -k
-k参数:指定跳过 SSL 检测
curl -k http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.61.1",
"X-Amzn-Trace-Id": "Root=1-6267ac23-1626e89a1302cdfb66f5c845"
},
"origin": "120.76.204.238",
"url": "http://httpbin.org/get"
}
curl -sS -O
-s 参数将不输出错误和进度信息 -S 参数指定只输出错误信息,通常与-s一起使用 -O 参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名
curl -sSO http://httpbin.org/get
cat get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.61.1",
"X-Amzn-Trace-Id": "Root=1-6267acc7-64ef657f21789dd04e0b6418"
},
"origin": "120.76.204.238",
"url": "http://httpbin.org/get"
}
curl -v
-v 参数输出通信的整个过程,用于调试
curl -sSOv http://httpbin.org/get
* Trying 3.226.124.170...
* TCP_NODELAY set
* Connected to httpbin.org (3.226.124.170) port 80 (#0)
> GET /get HTTP/1.1
> Host: httpbin.org
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 26 Apr 2022 08:28:26 GMT
< Content-Type: application/json
< Content-Length: 255
< Connection: keep-alive
< Server: gunicorn/19.9.0
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
<
{ [255 bytes data]
* Connection #0 to host httpbin.org left intact
curl -u -i
-u 参数用来设置服务器认证的用户名和密码 -i:如果-u只设置了用户,则想要手动输入密码
curl -u 'lwmacct:pwd' http://httpbin.org/basic-auth/lwmacct/pwd
{
"authenticated": true,
"user": "lwmacct"
}
curl -i -u 'lwmacct' http://httpbin.org/basic-auth/lwmacct/pwd
Enter host password for user 'lwmacct':
HTTP/1.1 401 UNAUTHORIZED
Date: Tue, 26 Apr 2022 08:30:45 GMT
Content-Length: 0
Connection: keep-alive
Server: gunicorn/19.9.0
WWW-Authenticate: Basic realm="Fake Realm"
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
curl -f
(HTTP)在服务器错误上静默失败(完全没有输出)。这主要是为了使脚本等更好地处理失败的尝试。
[root@clq ~]# curl http://itclq.top/test
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>
[root@clq ~]# curl -f http://itclq.top/test
curl: (22) The requested URL returned error: 404 Not Found
curl 访问https
curl --insecure https://itclq.top