可以在没有浏览器的情况下,模仿http请求。

get 请求

默认就是get请求

  1. curl www.baidu.com # 直接打印出网页的html
  2. curl www.baidu.com/api # 直接打印出可调用的api

POST请求

-XPOST: 设置请求类型
URL: 网页
-d: 设置添加数据

  1. curl -XPOST https://jsonplaceholder.typicode.com/posts -d '{"title":"liao"}'
  2. {
  3. "{\"title\":\"liao\"}": "",
  4. "id": 101
  5. }

PUT与DELETE

  1. curl -XPUT https://jsonplaceholder.typicode.com/posts/1 -d '{"update":"更新"}'
  2. {
  3. "{\"update\":\"更新\"}": "",
  4. "id": 1
  5. }
  6. curl -XDELETE https://jsonplaceholder.typicode.com/posts/1

设置首部信息

-H: 设置请求头 一个H 一个请求头
-I: 获得请求网站的所有请求头

  1. curl -XPOST https://jsonplaceholder.typicode.com/posts -H "Content-Type:application/json" -d '{"title":"里奥"}'
  2. curl -I https://jsonplaceholder.typicode.com/posts
  3. HTTP/1.1 200 OK
  4. Date: Mon, 23 May 2022 12:48:46 GMT
  5. Content-Type: application/json; charset=utf-8
  6. Connection: keep-alive
  7. X-Powered-By: Express
  8. X-Ratelimit-Limit: 1000
  9. X-Ratelimit-Remaining: 998
  10. X-Ratelimit-Reset: 1652304597
  11. Vary: Origin, Accept-Encoding
  12. Access-Control-Allow-Credentials: true
  13. Cache-Control: max-age=43200
  14. Pragma: no-cache
  15. Expires: -1
  16. X-Content-Type-Options: nosniff
  17. Etag: W/"6b80-Ybsq/K6GwwqrYkAsFxqDXGC7DoM"
  18. Via: 1.1 vegur
  19. CF-Cache-Status: HIT
  20. Age: 26154
  21. Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
  22. Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=h3UvhJycOuvMeqR4L59SLtccAcyBduvk8%2FZI78gi7QYUQFhsrjTfyHNmAYlsqEyVsSMhA5d%2BzNsf7%2B%2F4tS9EEevd7elmOrrJCw6LLB%2BVIi4mHxQ1Q%2BdFwspvgW5A3ty7xL2uqiWJChfWxWVI00L6"}],"group":"cf-nel","max_age":604800}
  23. NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
  24. Server: cloudflare
  25. CF-RAY: 70fde860deab52f5-LAX
  26. alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400

下载页面文件

  1. curl -O www.baidu.com/aaa.png #下载该页面的文件
  2. curl -o 123.png www.baidu.com/aaa.png # 下载该页面的文件并且自定义名称

限制下载速度

—limit-rate: 限制下载速度
-c: 恢复中断的下载任务

  1. curl --limit-rate 100k -o www.baidu.com/aaa.png

如果不小心暂停,可以使用 -c 恢复下载。

重定向与详细信息

-v: 显示详细信息 三次握手重定向等
-L: 跟随重定向

  1. curl -v -L www.bilibili.com

代理访问

—proxy: 设置代理IP
image.png

  1. curl --proxy ""

FTP的上传与下载

上传

  1. curl -u 用户名:密码 -T 文件名 ftp://server
  2. curl -u 用户名:密码 -O ftp://server/files