cURL-定义
cURL 发音为[‘curl’],即Client URL(客户端URL)。
提供了一个库
和命令行工具
,是一个传输URL资源
的工具,对 URL 进行操作。
任何和Internet协议
(即TCP/IP协议
)传输相关的业务都可以看做curl业务。
区别:
- 动词:to curl something ,使用非浏览器工具从URL下载文件或资源。
- 一种编程语言 CURL
组成
cURL包含两款产品:
-
libcurl:一个用C编写的免费的客户端URL传输库。通常和其他程序绑定使用,作为其他程序的开发库。
-
cURL:一个命令行工具(二进制可执行文件),底层使用libcurl,通过shell或者脚本调用,以实现
使用URL语法
获取或发送包含文件的数据。支持的协议:
- DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTMP,RTSP,SCP,SFTP,SMB,SMBS,SMTP,SMTPS,TELNET,TFTP
- 默认支持HTTPS并执行SSL证书验证。
使用:
-
cURL项目本身不提供curl的二进制可执行文件。因为命令行工具curl的使用依赖于具体系统。所以使用curl时往往需要去下载适用于特定系统的curl版本。
由于这些系统间有很多差异,因此curl可改造性很大(如容错性大,有时命令输错了,curl还是会执行)。
-
curl一般依赖于第三方的库,除非静态地使用curl命令。
-
curl将数据发送到stdout。
特点
- 基于TCP协议
- 只专注于
传输
,而不负责处理
数据。如curl不理解HTML等的内容(不做渲染),但是可以通过HTTP协议传输它。
和浏览器的区别
curl客户端操作curl命令操作URL和浏览器操作URL的区别:
- curl:只执行单行URL命令,对服务器返回的数据或消息不处理(如不渲染HTML页面,不重定向等)。
- 浏览器:功能更丰富,对服务器返回的数据做相应处理后呈现给用户。
如,
浏览器
会解析body部分,渲染出界面;同时还会通过一些链接和状态码重定向(如,在浏览器地址栏输入 baidu.com 后,浏览器可以根据服务器传回的消息重定向到www.baidu.com,直至可以得到一个可以呈现给用户的页面。而curl
输入curl baidu.com
,则只会得到服务器发回的重定向消息,不做下一步处理。
参考文献
<https://en.wikipedia.org/wiki/CURL#cite_note-4 cURL维基百科
https://ec.haxx.se/ 《Everything curl》
https://www.jb51.net/article/68750.htm curl 和 libcurl 的区别
https://www.jianshu.com/p/0ebedf948739 curl和浏览器的区别