您的位置:首页 > 运维架构 > Linux

强大的curl命令的介绍和一般用法

2017-09-22 14:21 295 查看
curl,全称CommandLine URL 或 CommandLine Uniform Resource Locator,顾名思义,curl命令是在命令行方式下工作,利用URL的语法进行数据的传输或者文件的传输。

这个命令行工具现在多用于Unix和Linux操作系统,是一个开源的工具,功能十分强大。

下面是crul的官方网站,我们可以该网站获取该工具的最新版本,还有最全面的使用方法。

https://curl.haxx.se/

从官网我们可以知道,该工具支持以下30多种类型的传输方式,这当中包含多种协议。

DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates,
HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling

最常使用的有FILE、FTP、HTTP、HTTPS等协议。

对于程序员在说,在我们开发远程服务的时候,比如http传输,SOCKET等网络编程时,这个工具能非常方便的作为你的验证工具和测试工具。

比如下面是最简单的用法,通过这种方式获取一个页面。我输入的www.baidu.com甚至还不是一个完整的URL,因为没有指明所用的协议,curl智能地进行了选择。

运行后,返回的是一个百度主页的HTML代码。

curl www.baidu.com




本文主要还是介绍curl的一般用法,详细用法请参阅官网。

curl的用法跟一般的linux/Unix命令无异,一般语法如下。

crul -[选项] [URL]


1. -v 选项,--verbose,指定该选项后,可以跟踪URL的连接信息。我们可以根据这个选项看看curl是怎么工作的。

比如刚刚演示的那个百度链接,我们加入-v选项,就可以看看它是怎么工作的。

加上选项后返回的信息,包括很多重要信息:

域名解释过程:我们可以得到真正连接的IP地址和端口

请求头信息:其中有使用的协议(HTTP),协议的请求方式(GET)

回应头信息:包含状态码(200),内容格式(text/html),内容长度等

curl -v www.baidu.com




2.-i 选项,--include,把回应的头信息包含在内,跟-v大同小异,是-v的子集。

curl -i www.baidu.com




3.-I (大写i)选项,--head,只显示返回的头信息,与-v大同小异,是-v的子集。

curl -I www.baidu.com



4. -u 选项,带用户验证的连接。可以访问或获取带用户验证的URL。

curl -u username:password ftp://127.0.0.1/hello.txt curl -u username ftp://127.0.0.1/hello.txt curl -u username:password https://127.0.0.1/[/code]5. -d 选项,带请求参数的连接。比如下面的URL,user=xiaoruan&age=22就是所带的参数。crul可以带请求参数。
http://127.0.0.1/index.html?user=xiaoruan&age=22
curl -d 'user=xiaoruan&age=22' http://127.0.0.1/index.html[/code] 
6. -X 选项,指定请求方式,我们只能URL可以有多种请求方式,最常见的是GET和POST,但请求的方式,包括GET、PUT、POST、DELETE四种方式。

这四种请求方式,对于在做RESTFUL接口开发和测试的人来说,非常方便。curl的用法如下:

curl -XGET www.baidu.com
curl -XPOST www.baidu.com
curl -XDELETE www.baidu.com
curl -XPUT www.baidu.com


curl还有很多很多实用的功能,后续的用法会持续更新,欢迎大牛们一起交流,或者留下你日常工作中常用的或者你认为非常有用的curl用法,不胜感激。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息