curl 是利用 URL 语法在命令行方式下工作的开源文件传输工具,是命令行工具,可以通过shell或脚本来运行 curl。curl 底层所使用的库是 libcurl。使用 curl -V 可以查看编译好的 libcurl 库支持的功能,以及支持的 ssl 库。windows power shell 自带了 curl 命令,可以通过 curl http://baidu.com 或 curl https://baidu.com 来测试,本人自编译的 curl 测试 https 需要带证书参数 curl https://baidu.com --cacert cacert.pem 来测试。
libcurl 是一个免费开源的,高度可移植的,客户端 url 传输库,可以工作在不同的平台上,支持Windows,Unix,Linux等。支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。
编译 curl 主要有两种 ssl 模式,默认是基于 windows 的 winssl 编译,另一种是基于 openssl 加密库
curl + winssl:这时默认使用 SSPI、IDN、WINSSL 等技术,编译后使用 windows 系统自带的 CA 数字证书文件、ssl 加密库 winssl(Schannel and Secure Transport)
优点:使用 windows 自带的加密库,没有跨平台等考虑因素,性能自然是最优的;不用引入第三方库 openssl,也不需要显示设置 https CA 数字证书文件或者打包根证书到软件中。
缺点:window