curl客户端的url工具命令,参数非常多,功能非常强大,灵活使用

curl默认不带参数

不带任何参数默认访问的是网站信息内容

  1. curl http://httpbin.org/get
  2. {
  3. "args": {},
  4. "headers": {
  5. "Accept": "*/*",
  6. "Host": "httpbin.org",
  7. "User-Agent": "curl/7.61.1",
  8. "X-Amzn-Trace-Id": "Root=1-6267a4ec-5772a0974c2ba0007de43fb2"
  9. },
  10. "origin": "120.76.204.238",
  11. "url": "http://httpbin.org/get"
  12. }

curl -A -H

-A :指定客户端的代理标头 -H:直接指定标头,更改User-Agent

  1. 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
  2. {
  3. "args": {},
  4. "headers": {
  5. "Accept": "*/*",
  6. "Host": "httpbin.org",
  7. "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",
  8. "X-Amzn-Trace-Id": "Root=1-6267a87a-265b63b0261f7af115616cd3"
  9. },
  10. "origin": "120.76.204.238",
  11. "url": "http://httpbin.org/get"
  12. }
  1. curl -H "User-Agent:GOOGLE" http://httpbin.org/get
  2. {
  3. "args": {},
  4. "headers": {
  5. "Accept": "*/*",
  6. "Host": "httpbin.org",
  7. "User-Agent": "GOOGLE",
  8. "X-Amzn-Trace-Id": "Root=1-6267a827-3760a0e076b46b234795f23c"
  9. },
  10. "origin": "120.76.204.238",
  11. "url": "http://httpbin.org/get"
  12. }

curl -e

-e:自定义设置 HTTP 的标头Referer,表示请求的来源

  1. curl -e 'http://itclq.top:/curl' http://httpbin.org/get
  2. {
  3. "args": {},
  4. "headers": {
  5. "Accept": "*/*",
  6. "Host": "httpbin.org",
  7. "Referer": "http://itclq.top:/curl",
  8. "User-Agent": "curl/7.61.1",
  9. "X-Amzn-Trace-Id": "Root=1-6267aa38-73c4c82f5a5138b05d8f8c84"
  10. },
  11. "origin": "120.76.204.238",
  12. "url": "http://httpbin.org/get"
  13. }

curl -i

-i 参数打印出服务器回应的 HTTP 标头。 下面命令收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码

  1. curl -i http://httpbin.org/get
  2. HTTP/1.1 200 OK
  3. Date: Tue, 26 Apr 2022 08:20:07 GMT
  4. Content-Type: application/json
  5. Content-Length: 255
  6. Connection: keep-alive
  7. Server: gunicorn/19.9.0
  8. Access-Control-Allow-Origin: *
  9. Access-Control-Allow-Credentials: true
  10. {
  11. "args": {},
  12. "headers": {
  13. "Accept": "*/*",
  14. "Host": "httpbin.org",
  15. "User-Agent": "curl/7.61.1",
  16. "X-Amzn-Trace-Id": "Root=1-6267ab37-550d06082e97e64c761ba186"
  17. },
  18. "origin": "120.76.204.238",
  19. "url": "http://httpbin.org/get"
  20. }

curl -l

-I参数向服务器发出 HEAD 请求

  1. curl -I http://httpbin.org/get
  2. HTTP/1.1 200 OK
  3. Date: Tue, 26 Apr 2022 08:23:26 GMT
  4. Content-Type: application/json
  5. Content-Length: 255
  6. Connection: keep-alive
  7. Server: gunicorn/19.9.0
  8. Access-Control-Allow-Origin: *
  9. Access-Control-Allow-Credentials: true

curl -k

-k参数:指定跳过 SSL 检测

  1. curl -k http://httpbin.org/get
  2. {
  3. "args": {},
  4. "headers": {
  5. "Accept": "*/*",
  6. "Host": "httpbin.org",
  7. "User-Agent": "curl/7.61.1",
  8. "X-Amzn-Trace-Id": "Root=1-6267ac23-1626e89a1302cdfb66f5c845"
  9. },
  10. "origin": "120.76.204.238",
  11. "url": "http://httpbin.org/get"
  12. }

curl -sS -O

-s 参数将不输出错误和进度信息 -S 参数指定只输出错误信息,通常与-s一起使用 -O 参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名

  1. curl -sSO http://httpbin.org/get
  2. cat get
  3. {
  4. "args": {},
  5. "headers": {
  6. "Accept": "*/*",
  7. "Host": "httpbin.org",
  8. "User-Agent": "curl/7.61.1",
  9. "X-Amzn-Trace-Id": "Root=1-6267acc7-64ef657f21789dd04e0b6418"
  10. },
  11. "origin": "120.76.204.238",
  12. "url": "http://httpbin.org/get"
  13. }

curl -v

-v 参数输出通信的整个过程,用于调试

  1. curl -sSOv http://httpbin.org/get
  2. * Trying 3.226.124.170...
  3. * TCP_NODELAY set
  4. * Connected to httpbin.org (3.226.124.170) port 80 (#0)
  5. > GET /get HTTP/1.1
  6. > Host: httpbin.org
  7. > User-Agent: curl/7.61.1
  8. > Accept: */*
  9. >
  10. < HTTP/1.1 200 OK
  11. < Date: Tue, 26 Apr 2022 08:28:26 GMT
  12. < Content-Type: application/json
  13. < Content-Length: 255
  14. < Connection: keep-alive
  15. < Server: gunicorn/19.9.0
  16. < Access-Control-Allow-Origin: *
  17. < Access-Control-Allow-Credentials: true
  18. <
  19. { [255 bytes data]
  20. * Connection #0 to host httpbin.org left intact

curl -u -i

-u 参数用来设置服务器认证的用户名和密码 -i:如果-u只设置了用户,则想要手动输入密码

  1. curl -u 'lwmacct:pwd' http://httpbin.org/basic-auth/lwmacct/pwd
  2. {
  3. "authenticated": true,
  4. "user": "lwmacct"
  5. }
  6. curl -i -u 'lwmacct' http://httpbin.org/basic-auth/lwmacct/pwd
  7. Enter host password for user 'lwmacct':
  8. HTTP/1.1 401 UNAUTHORIZED
  9. Date: Tue, 26 Apr 2022 08:30:45 GMT
  10. Content-Length: 0
  11. Connection: keep-alive
  12. Server: gunicorn/19.9.0
  13. WWW-Authenticate: Basic realm="Fake Realm"
  14. Access-Control-Allow-Origin: *
  15. Access-Control-Allow-Credentials: true

curl -f

(HTTP)在服务器错误上静默失败(完全没有输出)。这主要是为了使脚本等更好地处理失败的尝试。

  1. [root@clq ~]# curl http://itclq.top/test
  2. <html>
  3. <head><title>404 Not Found</title></head>
  4. <body>
  5. <center><h1>404 Not Found</h1></center>
  6. <hr><center>nginx/1.20.1</center>
  7. </body>
  8. </html>
  9. [root@clq ~]# curl -f http://itclq.top/test
  10. curl: (22) The requested URL returned error: 404 Not Found

curl 访问https

  1. curl --insecure https://itclq.top