美文网首页
curl 常用命令指南

curl 常用命令指南

作者: 时光已翩然轻擦 | 来源:发表于2020-08-26 14:42 被阅读0次

curl

curl:Command Line URL viewer
curl 是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在“标准输出”(stdout)上面。

  • curl --help 命令可查看帮助信息

一、查看网页源码

$ curl www.example.com

输出:

<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
        
    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>    
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

二、保存网页

  • -o 参数:把网页中的文件输出到本地一个文件(自定义文件名)中。等同于wget命令。
  • -O 参数:把网页中的文件输出到本地一个文件(将url的最后部分作为文件名)中。

1. -o

$ curl -o output.html www.example.com
// 保存为output.html

2. -O

$ curl -O https://www.example.com/foo/bar.html
// 保存为bar.html

🤔:文件被保存在哪里?

三、不输出

  • -s参数:不输出错误和进度信息
  • -S参数:指定只输出错误信息,通常与-s 一起使用

-s

$ curl -s www.example.com
// 上面命令一旦发生错误,不会显示错误信息。
// 不发生错误的话,会正常显示运行结果。

例1:

image.png

例2:


-S

$ curl -S www.example.com
// 上面命令没有任何输出,除非发生错误。

四、显示头信息

  • -i 参数:可以显示http response 的头信息,连同网页代码一起。
  • -I 参数:则只显示http response 的头信息。 同 --head

1. curl -i

$ curl -i www.sina.com 

输出:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Tue, 25 Aug 2020 10:23:22 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: http://www.sina.com.cn/
Expires: Tue, 25 Aug 2020 10:23:45 GMT
Cache-Control: max-age=120
X-Via-SSL: ssl.95.sinag1.qxg.lb.sinanode.com
Edge-Copy-Time: 1598351002111
Age: 97
Via: https/1.1 ctc.guangzhou.union.182 (ApacheTrafficServer/6.2.1 [cRs f ]), https/1.1 ctc.ningbo.union.47 (ApacheTrafficServer/6.2.1 [cRs f ])
X-Via-Edge: 15983510027946ce52478f0beee733509e3da
X-Cache: HIT.47
X-Via-CDN: f=edge,s=ctc.ningbo.union.70.nb.sinaedge.com,c=120.36.229.108;f=Edge,s=ctc.ningbo.union.47,c=115.238.190.70

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

2. curl -I

$ curl -I www.sina.com 
// 或者
$ curl --head www.sina.com

输出:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Wed, 26 Aug 2020 01:50:16 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: http://www.sina.com.cn/
Expires: Wed, 26 Aug 2020 01:51:03 GMT
Cache-Control: max-age=120
X-Via-SSL: ssl.95.sinag1.qxg.lb.sinanode.com
Edge-Copy-Time: 1598406615342
Age: 73
Via: https/1.1 ctc.guangzhou.union.182 (ApacheTrafficServer/6.2.1 [cRs f ]), https/1.1 ctc.ningbo.union.47 (ApacheTrafficServer/6.2.1 [cRs f ])
X-Via-Edge: 1598406616333dba8393bf0beee7326154d4c
X-Cache: HIT.47
X-Via-CDN: f=edge,s=ctc.ningbo.union.73.nb.sinaedge.com,c=59.57.168.219;f=Edge,s=ctc.ningbo.union.47,c=115.238.190.73

五、显示通信过程

  • -v 参数:可以显示一次http通信的整个过程,包括端口连接和http request头信息。
  • 如果你觉得-v 显示的信息还不够,可以使用 -- trace [输出文件名] 命令或者--trace-ascii [输出文件名]命令查看更详细的内容。
$ curl -v www.sina.com
// 或者(以下两个命令运行后请打开output.txt查看)
$ curl --trace output.txt www.sina.com (含16进制信息)
$ curl --trace-ascii output.txt www.sina.com (不含16进制信息)

输出

*   Trying 115.238.190.240...
* TCP_NODELAY set
* Connected to www.sina.com (115.238.190.240) port 80 (#0)
> GET / HTTP/1.1
> Host: www.sina.com
> User-Agent: curl/7.64.1
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Server: nginx
< Date: Wed, 26 Aug 2020 02:14:25 GMT
< Content-Type: text/html
< Content-Length: 178
< Connection: keep-alive
< Location: http://www.sina.com.cn/
< Expires: Wed, 26 Aug 2020 02:15:13 GMT
< Cache-Control: max-age=120
< X-Via-SSL: ssl.22.sinag1.qxg.lb.sinanode.com
< Edge-Copy-Time: 1598408064302
< Age: 72
< Via: https/1.1 ctc.guangzhou.union.182 (ApacheTrafficServer/6.2.1 [cRs f ]), https/1.1 ctc.ningbo.union.47 (ApacheTrafficServer/6.2.1 [cRs f ])
< X-Via-Edge: 15984080658086ce52478f0beee730184920e
< X-Cache: HIT.47
< X-Via-CDN: f=edge,s=ctc.ningbo.union.74.nb.sinaedge.com,c=120.36.229.108;f=Edge,s=ctc.ningbo.union.47,c=115.238.190.74
< 
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
* Connection #0 to host www.sina.com left intact
* Closing connection 0

六、发送表单信息

  • 发送表单信息有getpost两种方法。
  • get 方法:只要把数据附在网址后面即可。
  • post 方法:必须把数据和网址分开,curl就要用到-data参数。

1. GET方法

$ curl example.com/form.cgi?data=xxx

2. POST方法

$ curl -X POST --data "data=xxx" example.com/form.cgi

如果你的数据没有经过表单编码,还可以使用curl为你编码,参数为 --data-urlencode

$ curl -X POST --data-urlencode "date=April 1" example.com/form.cgi

参考资料

未完待续……

相关文章

  • curl 常用命令指南

    curl curl:Command Line URL viewercurl 是一种命令行工具,作用是发出网络请求,...

  • meteor介绍

    安装 mac/linux:curl https://install.meteor.com/ | sh 常用命令 创...

  • curl命令查看http请求各个阶段

    一、常用命令 curl -so /dev/null -w '\n'time_namelookup:'\t'%{ti...

  • curl 的用法指南

    参考链接 Curl CookbookCurl 的用法指南 简介:curl 是常用的命令行工具,用来请求 Web 服...

  • Anaconda总结

    参考网址:Anaconda完全入门指南Anaconda常用命令

  • cURL 使用指南

    偷个懒,上午发的,转过来 cURL 使用指南

  • Linux 命令-curl 常用命令

    Linux 命令-curl 常用命令 下载单个文件 cur http://www.demo.com 默认将输出打印...

  • Linux常用命令总结

    Linux常用命令指南 @Date 2017.05.23 tail awk awk ' pattern {acti...

  • curl 备忘录

    参考文档:curl 的用法指南[https://www.ruanyifeng.com/blog/2019/09/c...

  • curl 常用命令

    发起GET 请求 发起POST 请求 可以通过 -X 选项指定其它协议 发起跨域访问请求 常见使用方式 参考: h...

网友评论

      本文标题:curl 常用命令指南

      本文链接:https://www.haomeiwen.com/subject/kdvzjktx.html