自己翻译了好几天,希望大家多多指正


linux下wget使用命令解析大全


名称


curl - 传输URL



概要


curl [选项] [URL...]



描述


curl是一个可以从服务器传输数据或者传输数据到一个服务器的工具,支持以下协议(HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or FILE)。该命令被设计而无需用户交互工作。


curl提供一系列有用的技巧,像代理支持,用户认证,FTP上传,HTTP提交,SSL链接,cookies,文件传输等等




URL


对应URL可以使用以下集中方式来更方便的指定多个相似的URL链接


可以通过编写内容在括号内来指定多个URL或多个URL的一部分:

http://site.{one,two,three}.com


或者您可以通过使用[]作为获得字母数字系列的序列:

ftp://ftp.numericals.com/file[1-100].txt

ftp://ftp.numericals.com/file[001-100].txt (with leading zeros)

ftp://ftp.letters.com/file[a-z].txt


也可以两者组合使用

http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html


curl 7.15.1版本以后,你可以指定步长,

http://www.numericals.com/file [1-100:10] .TXT 

http://www.letters.com/file [AZ:2] .TXT



选项


-a/--append   

(FTP/SFTP)上传文件时,附加到目标文件,而不是覆盖目标文件。如果文件不存在,则创建,注意这个标志被一些SSH服务器(包括OpenSSH的)忽略不计的。


-A/--user-agent <agent string>

(HTTP)指定用户代理字符串发送给HTTP服务器。如果该字段没有被设置为 "Mozilla/4.0",可能会造成CGIs失败。为了编码空白字符串,需要用单引号。这个也可以与 -H/--header 选项同时使用。此选项被设置多次,则以最后一次的设置为准。


--anyauth

(HTTP)告诉curl自己弄清认证方式,并且使用远程站点宣称支持的最安全的方式来链接。这个过程是在第一次请求和检查相应头部的时候做的,因此可能会引起一个额外的网络往返。此选项被使用来替代指定一个特定的认证过程,比如说--basic, --digest, --ntlm, and --negotiate。

注意使用--anyauth在你从标准输入(stdin)上传东西的时候是不推荐的,因为它可能要求数据被发送两次,然后在客户端必须能够倒带(rewind)。如果从标准输入(stdin)上传是需要出现,则会导致上传操作将失败。


-b/--cookie <name=data>

(HTTP) 传递数据给HTTP服务器做为一个cookie。此数据可能是从服务器接收到的(在"Set-Cookie:"行)。数据必须以这样的格式"NAME1=VALUE1; NAME2=VALUE2"。

如果cookies行里面没有 '=',则会被认为是一个之前存储cookie行的文件名来读取,如果cookie符合的话,将会在会话(seesion)里面被使用。使用这个方法也将会激活"cookie parser","cookie parser"将会使curl命令记录接收到的cookies信息,如果和 -L/--location的选项一起组合使用将会是十分便利的。去读取cookies的文件格式必须是简单的HTTP头部消息格式或者是Netscape/Mozilla cookie文件格式。


注意:被-b/--cookie选项指定的文件仅仅做为输入(input)。不会被用来存储cookie的。如果需要存储cookies,则需要使用 -c/--cookie-jar选项,或者甚至你可以用-D/--dump-header选项保存整个HTTP头部信息到一个文件。此选项使用多次,则以最后一次为准。


-B/--use-ascii  

在使用FTP or LDAP协议时,使支持(enable)ASCII传输。也可以通过在URL后面添加";type=A"来强制开启此选项的功能。此选项会让数据以明文形式被发送到标准输出端(对于win32的系统)。


--basic

(HTTP)让curl来使用HTTP基本认证(HTTP Basic authentication),这个是默认的,而且此选项没啥意义,除非你使用它来覆盖之前设置的选项,做为一个不同的认证方式(比如--ntlm, --digest, or --negotiate)。


--ciphers <list of ciphers>

(SSL) 指定连接使用哪种密码方式,密码列表必须是有效的,具体可以参照SSL密码列表http://www.openssl.org/docs/apps/ciphers.html


NSS密码比起OpenSSL and GnuTLS有很大不同。NSS密码完全列表可以参考http://directory.fedora.redhat.com/docs/mod_nss.html#Directives

此选项使用多次,则以最后一次为准。


--compressed

(HTTP)在使用一个支持算法libcurl的时候,请求一个被压缩的响应,并且返回非压缩的文档。如果此选项被使用,当服务器发送一个不支持的编码时,curl将报出错误。


--connect-timeout <seconds> 你容许的最大时间(单位秒)去连接服务器。这个只限制连接(connection:比如说tcp的3次握手)阶段,一旦连接成功,则此选项就没用了,也可以看下 -m/--max-time选项。 此选项使用多次,则以最后一次为准。


-c/--cookie-jar <file name>

指定你想要curl命令去把所有的cookies都写入到哪个文件中,在一些列复杂的交互之后。curl会先从一个指定的从远程服务器上接收所有的cookies写入到的文件中读取cookies信息,然后再写入cookies到-c/--cookie-jar <file name>选项指定的文件中去。如果没有可以读取cookie的地方,则cookie也不会被写入。cookies将会以 Netscape cookie 文件格式被写入指定的文件中。如果你设置文件名为一个破折号“-”,那么cookie将会被写入到标准输出(stdout)中去。


注意:如果cookie jar不能被创建或者被写入,那么整个curl操作不会失败或者报出一个清晰的错误。使用-v将会得到一个警告信息,但是也只是个可见的反馈而已。此选项使用多次,则以最后一次为准。


-C/--continue-at <offset>

在指定偏移地址恢复或继续文件传输。给定的偏移值是一个精确到数字字节(bytes)将会被忽略,在文件被传输到目的地之前计数源文件的开始位置。如果使用上传,FTP服务器的SIZE命令将不会被curl命令使用。

使用"-C -"将会告诉curl自动地寻找哪里/怎么样去续传。此选项使用多次,则以最后一次为准。


--create-dirs

当同时与-o选项一起用的时候,当需要的时候curl将会创建必要的本地目录层次。如果-o 之后没有指定目录名或者目录已经存在,那么就不会再创建新目录。当在使用FTP or SFTP协议时,需要创建远程目录,可以使用 --ftp-create-dirs。


--crlf

(FTP)在上传时,切换LF到CRLF。在 MVS (OS/390)系统中有用。


--crlfile <file>

(HTTPS/FTPS)提供一个PEM格式文件且含有证书吊销列表,它可以用来指定要考虑撤销的证书。此选项使用多次,则以最后一次为准。(在7.19.7版加入)


-d/--data <data>

(HTTP) 发送指定的数据在向HTTP服务器POST请求中,跟在浏览器中,当用户已经填充了一个HTML表格并按下提交按钮一个样。这将导致curl使用内容类型pplication/x-www-form-urlencoded将数据传递到服务器。相较于-F/--形式。

-d/--data 与 --data-ascii很类似。如果需要传输纯二进制文件内容,则需要使用--data-binary选项。传输URL-encode类型的表格数据则需要使用--data-urlencode。

如果这些选项被使用超过一次在同一个命令行中,那么指定数据块将会呗合并在一起,以单独的&-符号。因此使用'-d name=daniel -d skill=lousy' 将会产生一个提交的块像'name=daniel&skill=lousy'这种样式了。

如果你以@字符开始数据,那剩下部分必须是一个文件名来从中读取数据,或者你想从标准输入(stdin)中读取数据,可以使用'-'符号。文件中的内容必须是已经被 URL-encoded编码过的。多个文件也可以被同事指定。提交数据以一个叫 'foobar'的文件名,那么就可以这样使用--data @foobar。


--data-binary <data>

(HTTP)这个提交数据被指定无需额外的处理过程。如果你开始数据为字符@,那么接下来必须接着一个文件名。数据被提交与--data-ascii选项的提交数据方式类似,除了新行被保留,转换不会被做。如果这个选项被多次使用,那么也像“使用'-d name=daniel -d skill=lousy' 将会产生一个提交的块像'name=daniel&skill=lousy'这种样式了。”这样的。


--data-urlencode <data>

(HTTP)这个提交数据,类似其他--data选项,但是此选项需要指定一个 URL-encoding的数据。为了CGI兼容,在<data>部分应该用一个以分隔符和内容规范开头的名字。在<data>部分传给curl的,可以通过使用以下语法:


content

这个将是curl URL-encode编码内容并且传递之。需要注意是内容不能包括任何' = or @'符号,因为那会使语法匹配下面的其他形式。


=content

这个将是curl URL-encode编码内容并且传递之。=号之前不能有任何数据内容。


name=content

这个将是curl URL-encode编码内容并且传递之。注意name部分需要是被 URL-encoded编码过了的。


@filename

这会让curl载入数据从给定的文件中,URL-encode编码内容并且传递之。


name@filename

这会让curl载入数据从给定的文件中,URL-encode编码内容并且传递之。name部分需要已经被URL-encoded编码过的。


--delegation LEVEL

设置LEVEL来告诉服务器它容许委托,当涉及到用户凭据时。用于GSS/kerberos一起使用。LEVEL可以是以下的选项:

none 不容许任何委托

policy 仅在 OK-AS-DELEGATE flag标准被设置的时候进行协商在Kerberos 服务。

always 无条件允许服务器委派


--digest

(HTTP) 支持HTTP摘要认证(HTTP Digest authentication)。这是个避免密码被以明文发送的认证。当与 -u/--user选项一起使用时来设置用户名和密码。可参考-ntlm, --negotiate 和 --anyauth相关选项。

如果该选项被多次使用,在发生以下情况没有什么区别。


--disable-eprt

(FTP)告诉curl在做主动(active)ftp传输是关闭使用EPRT 和 LPRT命令。curl正常的话都会尝试先使用EPRT,然后LPRT,再尝试使用PORT,但是使用这个选项的话,它会直接使用PORT。EPRT和LPRT是扩展到原来的FTP协议,并且可能无法在所有服务器上工作,但他们能够在比传统的PORT命令一个更好的方式且有更多的功能。

从curl 7.19.0, --eprt可以被用来打开EPRT功能,--no-eprt被做为disable-eprt的别名。

关闭EPRT仅仅改变在主动ftp传输方式的时候。如果需要转变成被动(passive)ftp模式则需要使用-P/--ftp-port或者--ftp-pasv。


--disable-epsv

(FTP)让curl关闭在被动(passive)FTP传输时的EPSV命令的使用。curl命令正常是在使用PASV命令前,先尝试去使用EPSV命令的,但是有了这个选项就不在先尝试使用EPSV命令了。从curl 7.19.0版本后,--epsv选项可以确切地打开EPRT命令,--no-epsv是disable-epsv的别名。

关闭EPSV命令,也仅仅在被动(passive)FTP传输时有效,如果需要转换FTP传输主被动模式则需要使用-P/--ftp-port或者--ftp-pasv。


-D/--dump-header <file>

写协议头到指定的文件。当你想存储HTTP站点发送给你的头部信息时,这个选项就很方便了。读取头部信息中的cookies信息可以使用 -b/--cookie选项,其实-c/--cookie-jar是最方便存储cookies信息的选项。

当使用在FTP协议时,也是可以存储那些可以被认为是头部消息的信息。此选项使用多次,则以最后一次为准。


-e/--referer <URL>

(HTTP)发送参照页(Referer Page)信息给HTTP服务器。这个可以同 -H/--header选项一起设置使用。当和-L/--location一起使用时,你可以追加";auto"到--referer URL后,来使curl命令自动设置之前的URL,当它跟着一个位置:头。 ";auto"字符串可以被单独使用,如果你不需要设置一个初始化的--referer值。此选项使用多次,则以最后一次为准。


--engine <name>

选择一个 OpenSSL加密引擎来用作加密操作。使用 --engine list来打印支持的引擎列表信息。注意不是所有的(或无)引擎都是可以获得的,在运行的时候。


--environment

(仅支持RISC OS)设置一个环境变量范围,使用-w选项支持名字来在运行curl命令之后,更容易的提取有用的信息。


--egd-file <file>

(SSL) 指定熵收集守护进程(Entropy Gathering Daemon)socket文件的路径位置。此socket被用来初始化SSL连接的随机引擎 。也需要看一下 --random-file选项。


-E/--cert <certificate[:password]>

(SSL) 当获取到一个文件以HTTPS或者FTPS开头的,告诉curl命令使用指定的证书文件。证书文件必须是PEM格式的。如果此选项的password部分没有被指定,那么在终端将会需要输入密码。注意此选项指定的证书文件是私钥(private key)和私有证书!可以看一下--cert 和 --key单独指定私有证书和私钥的选项。

如果curl含有 NSS SSL库的话,那么此选项将会告诉curl命令证书的昵称来在 SSL_DIR(或者默认/etc/pki/nssdb)环境变量中定义的NSS数据库中使用。如果可以获取到 NSS PEM PKCS#11模块(libnsspem.so),那么PEM文件可以被载入。如果你想从当前目录使用一个文件,那么就得以"./" 开头了,来避免与昵称的冲突。此选项使用多次,则以最后一次为准。


--cert-type <type>

(SSL)告诉curl提供的证书是什么类型,PEM,DER和ENG是可以识别的类型,如果不指定,PEM则为默认。此选项使用多次,则以最后一次为准。


--cacert <CA certificate>

(SSL)告诉curl使用指定的证书文件来验证对方。这个文件可以包含多个CA证书。证书都必须是PEM格式。通常呢curl都是先使用默认文件的,然后才会使用此选项指定的证书文件。

curl识别 'CURL_CA_BUNDLE'的环境变量,并且使用给定路径做为CA证书捆绑。这个选项将覆盖此环境变量。

windows版本的curl将自动寻找叫做'curl-ca-bundle.crt'的CA证书文件。要么在curl.exe同目录下寻找,或者在当前工作目录,或沿着你的路径中的任何文件夹。

如果curl含有 NSS SSL库的话,那么此选项将会告诉curl命令证书的昵称来在 SSL_DIR(或者默认/etc/pki/nssdb)环境变量中定义的NSS数据库中使用。如果可以获取到 NSS PEM PKCS#11模块(libnsspem.so),那么PEM文件可以被载入。

此选项使用多次,则以最后一次为准。


--capath <CA certificate directory> 

告诉curl使用指定的证书目录来验证对方。证书必须是PEM格式的。此选项使用多次,则以最后一次为准。


-f/--fail

(HTTP)安静模式(没有输出)当有服务器错误时。这个最好来开启脚本示例来更好地处理失败尝试。在当一个HTTP服务器无法正常传送文件情况下,它会返回一个HTML文件,说明(通常还介绍了为什么以及更多)。此标志将防止curl输出错误和返回错误22。

此方法不是故障安全和有非成功响应代码场合将漏掉,尤其是涉及验证(响应代码401和407)。


--ftp-account [data]

(FTP)当在提供用户名和密码之后,一个FTP服务器还询问账户数据("account data"),数据通过 ACCT命令被发送(加入在7.13.0版本)。此选项使用多次,则以最后一次为准。


--ftp-create-dirs

(FTP/SFTP)当一个FTP or SFTP URL/操作 使用了一个在服务器上当前不存在的路径,curl的标准行为将会失败。使用这个选项,curl将会先尝试去创建不存在的目录。


--ftp-method [method]

(FTP)控制curl使用什么方式来访问FTP服务器上的文件。这个方式method字段必须是下面的选项之一:


multicwd 在给定的URL上的每个路径部分都执行一次CWD操作。对于深层次,这意味着很多的命令。这是在 RFC1738上面定义这样的。这是默认行为但是执行会比较慢

nocwd curl命令根本不执行CWD查找,curl命令将会做SIZE, RETR, STOR等等命令,并且给定一个绝对路径给服务器用于这些命令。这也是执行最快的

singlecwd curl命令在绝对目标路径执行一次CWD操作,然后在文件上进行“正常”操作(像multicwd情况下)。这是一个比'nocwd'更加标准,但是没有'multicwd'兼容性更强。


(7.15.1中添加)


--ftp-pasv

(FTP)使用被动模式(passive mode)做为数据连接方式。被动模式是内部的一个默认行为,但是此选项通常用来覆盖之前的 -P/-ftp-port 选项(在7.11.0版加入)

如果该选项被多次使用,在发生以下情况没有什么区别。撤销一个强制的被动模式是不可行的,但是你又早晨必须强制正确的-P/--ftp-port选项。

被动模式意味着curl将先尝试EPSV命令,然后再尝试PASV,除非使用了 --disable-epsv选项。


--ftp-alternative-to-user <command>

(FTP)如果用USER和PASS命令认证失败,将会发送此命令。当通过FTPS使用一个客户端证书连接到Tumbleweed的安全传输服务器(Secure Transport server)时,使用 "SITE AUTH"将会告诉服务器去从证书上面检索用户名。(7.15.5中添加)


--ftp-skip-pasv-ip

(FTP)告诉curl在进行数据连接( data connection)传输时,不使用服务器相应给curl的PASV命令的IP地址。相反curl命令将会重用做为控制连接(control connection)的同一个ip地址(在7.14.2版加入.此选项没有任何影响,如果PORT,EPRT或EPSV是用来代替PASV时。


--ftp-ssl

(FTP) 尝试用SSL/TLS做为FTP的连接。如果一个服务器不支持SSL/TLS 的话,将会复原成非安全性连接的。也看下 --ftp-ssl-control 和 --ftp-ssl-reqd对于不通水平层次的加密需求。(在7.11.0版加入)


--ftp-ssl-control

(FTP) 需要SSL/TLS做为FTP登录,明确传送方式。容许安全认证,但是不加密数据传送效率肯定更好。如果服务器不支持SSL/TLS的话,那么传送数据将会失败。(在7.16.0版加入)


--ftp-ssl-reqd

(FTP)需要SSL/TLS做为FTP连接。 如果服务器不支持SSL/TLS的话,那么连接将会失败。(7.15.5中添加)


--ftp-ssl-ccc

(FTP)使用CCC (Clear Command Channel)在认证之后来关闭 SSL/TLS层。那么接下来控制通道中交流数据将是非加密状态。这个容许NAT路由去跟踪FTP事务。默认是被动模式。可以看下--ftp-ssl-ccc-mode的其他模式。(7.16.1中添加)


--ftp-ssl-ccc-mode [active/passive]

(FTP)使用CCC (Clear Command Channel)设置CCC模式。初始化关闭是被动 模式,从而需要等待服务器去做这些,而且不回复从服务器来的shutdown消息。而主动模式刚好相反。(在7.16.2版加入)



-F/--form <name=content>

(HTTP)让curl模仿一个用户按下提交按钮的填充过的表格。这个将会让curl依照RFC2388使用 Content-Type multipart/form-data去POST数据。这个支持上传二进制文件等等。为了强制 'content'部分为一个文件,文件名的前缀要用@符号。如果仅需要获取文件的内容部分,那么文件名前缀需要用一个<符号。@符号和<符号不同的地方是@符号使文件做为一个附件形式被提交上去,而<符号只是将文件内容导出给curl提交上去。

例如:发送你的密码文件给服务器,'password'做为表格对应名称, /etc/passwd做为输入

curl -F password=@/etc/passwd www.mypasswords.com

你也可以让curl使用什么Content-Type类型,通过使用'type='。

curl -F "web=@index.html;type=text/html" url.com

或者

curl -F "name=daniel;type=text/foo" url.com

您也可以明确地通过设置filename=,去更改文件上传部分的名称字段:

curl -F "file=@localfile;filename=nameinpost" url.com


--form-string <name=string>

(HTTP)与--form类似,除了名称参数的值被逐字使用的。'@' 和 '<'符号, ';type='字符串没有什么特殊含义。使用这个选项优先于--form,如果有任何可能会意外地触发--form的'@'或'<'的特点。


-g/--globoff

这个选项关闭 "URL globbing parser"。当你设置这个选项是,你可以指定包含 {}[]符号的URLS,而不需要被curl自己解析。注意这个符号正常合法的url内容,但是依照URI标准他们确实可以被编码。


-G/--get

使用的话,这个选项将会 通过在HTTP使用GET请求替代POST请求,并通过设定-d/--data或--data-binary来指定数据。这些数据将被追加到一个'?'分隔的URL上。

如果与-I选项一起使用,POST数据将改为被追加到HEAD请求的URL上。

如果该选项被多次使用,在发生以下情况没有什么区别。这是因为撤销GET不合理,但是可以用来强制改变可选择的请求方式。


-h/--help 使用帮助


-H/--header <header>

(HTTP)当获得到一个网页时,一个额外的头部信息。你可以指定任何数量的额外头部信息。注意如果你添加一个与curl已经使用的内部头部信息一样的自定义头部,那么额外头部信息将会替代内部头部信息。如果你不清楚头部消息的话最好不要轻易替代。删除一个内部头部信息可以这样,比如 -H "Host:".

curl将确保每个你添加或者替换的头部以合适的行尾符被发送,你不应该添加作为标题内容的一部分:不添加新行或者回车,他们只会误事为你。

另请参见-A / --user-agent和 -e/--referer 选项。 

该选项可以多次使用添加/替换/移除多个头。


--hostpubmd5 <md5>

传递一个包含32位16进制的字符串。这个字符串是远程服务器公钥的128bit的MD5的校验值,如果md5码不一样,curl将会拒绝连接主机。这个选项只用在SCP和SFTP传输上。(在7.17.1版加入)


--ignore-content-length

(HTTP)忽略内容长度(Content-Length)头部。这个对服务器运行Apache 1.x特别有用,将会报告文件超过2GB的不正确的文件内容长度。


-i/--include

(HTTP)将HTTP头部包括在输出内容中。HTTP头部包括服务器名,文档日期,HTTP版本等。


--interface <name>

使用一个特别的接口来执行操作。你可以输入接口名称,ip地址或者主机名称。比如:

curl --interface eth0:1 http://www.netscape.com/

此选项使用多次,则以最后一次为准。


-I/--head

(HTTP/FTP/FILE) 只获取HTTP头部消息!如HTTP服务器下的HEAD命令,只获取头部文档信息,其他都不获取。当使用FTP或者FILE时,curl像是文件大小和最后一次修改时间。


-j/--junk-session-cookies

(HTTP) 当curl被要求从一个给定的文件中读取cookies信息,这个选项将是curl丢弃所有的"session cookies"信息。当新会话开始的时候,这个选项也将同样有效。就像关闭浏览器时,浏览器会丢弃会话cookies。


-k/--insecure

(SSL) 这个选项指定curl执行不安全的SSL链接和传送。所有的SSL链接都会默认的尝试通过使用CA证书绑定建立安全链接。看更多信息 http://curl.haxx.se/docs/sslcerts.html


--keepalive-time <seconds>

此选项在发送存活探测和个体存活探测之间的时间前,设置连接需要保持的闲置时间。在Linux, recent AIX, HP-UX等系统上面的CP_KEEPIDLE 和TCP_KEEPINTVL的socket选项有效。如果选项--no-keepalive被使用,此选项失效(在7.18.0版加入)此选项使用多次,则以最后一次为准。


--key <key>

(SSL/SSH)私钥(Private key )文件名。容许你提供你的私钥在一个单独的文件里。此选项使用多次,则以最后一次为准。


--key-type <type>

(SSL)私钥(Private key )文件类型。DER, PEM和 ENG 类型被支持。默认为PEM。此选项使用多次,则以最后一次为准。


--krb <level>

(FTP) 打开Kerberos认证并使用。level的可选项是'clear', 'safe', 'confidential', or 'private'。默认为private。

这个选项需要一个kerberos4 或 GSSAPI (GSS-Negotiate)支持的库。可以使用 -V/--version来查看你的curl支持的版本。此选项使用多次,则以最后一次为准。


-K/--config <config file>

指定curl读取参数的配置文件。该配置文件是在一个文本文件命写入令行参数的,然后将被使用。选项和参数必须在相同的配置文件行中指定,用空格,冒号,等号或其任何组合(但首选分隔符是等号)。如果该参数是包含空格,该参数必须引号引起。在双引号,下面的转义序列可用:\\,\",\t,\n \r和\v。除了这些任何其他字母前面的反斜线被忽略。如果一个配置行的第一列是一个'#'开头的字符,该行的其余部分将被视为注释。在配置文件中每个物理行只写一个选项。

-K/--config后面如果跟的是'-'的话,将从标准输入(stdin)读取文件名。

可以在配置文件里面指定URL的,那么就需要使用--url选项,配置文件里面加入URL就如这样:

url = "http://curl.haxx.se/docs/"


curl是有默认配置文件的,搜索的路径顺序是:

1)先找家目录("home dir"):先检查 CURL_HOME,然后HOME环境目录变量。如果失败在 UNIX-like系统中将使用 getpwuid()来获取当前用户的家目录。在windows系统中,它会检查APPDATA 变量,或者 '%USERPROFILE%\Application Data'路径。

2)在windows系统中,家目录里面没有_curlrc 文件。它将会检查curl命令执行目录中是否有这个配置文件。在UNIX-like系统中,它只是简单地从计算的家目录中去载入.curlrc文件。


# --- Example file ---

# this is a comment

url = "curl.haxx.se"

output = "curlhere.html"

user-agent = "superagent/1.0"

# and fetch another URL too

url = "curl.haxx.se/docs/manpage.html"

-O

referer = "http://nowhereatall.com/"

# --- End of example file --

此选项被同时使用多次,则载入多个配置文件。



--libcurl <file>

附加此选项到任何普通curl命令行,你将会得到写入到文件里面的使用libcurl源代码。

注意:此选项不兼容-F。此选项使用多次,则以最后一次为准。


--limit-rate <speed>

指定最大传输数率。单位是字节/秒(bytes/second),可以添加 'k' or 'K' 代表 kilobytes, 'm or M' 代表megabytes,  'g' or 'G'代表gigabytes,例如: 200K, 3m and 1G.

如果同时使用-Y/--speed-limit选项,该选项将优先考虑,并可能削弱稍微限制率,以帮助保持速度限制逻辑工作。

此选项使用多次,则以最后一次为准。


-l/--list-only

(FTP)就是列出FTP目录内容信息。这个选项会向FTP服务器发送NLST命令。一些FTP服务器仅列出对NLST命令的响应;不包括子目录和软连接。


--local-port <num>[-num]

设置本地端口范围给连接使用。


-L/--location

(HTTP/HTTPS)如果服务器报告说请求页面已经转移到其他地址了(头部Location:会表明,和 3XX响应码),这个选项将会让curl重做请求到新的位置。如果与-i/--include或者 -I/--head选项一起使用,所有请求页面的头部都会被展现。当认证被使用,curl仅会发送证书给初始主机。如果让curl重定向到了一个不同主机,它将不会再去解释用户名+密码的。又见--location-trusted选项看怎么去改变上面说的认证过程。可以通过--max-redirs选项限制重定向的最大次数。


当curl追随重定向并且请求不是一个简单的GET(比如说是POST或者PUT),如果HTTP响应码是301, 302, 或者 303,那么 curl将会再此用GET方法来追踪重定向的请求。如果响应码是任意其他的3xx(除了301, 302, 或者 303),curl将会从使用同样的方法重新发送跟踪请求。


--location-trusted

(HTTP/HTTPS)例如-L/--location,但是可以容许发送用户名+密码给所有的站点可能重定向到的主机。如果站点重定向到站点,让你发送你的认证信息(认证信息是明文的,以防是HTTP基础认证),也许会,或许不会引入安全漏洞。


--max-filesize <bytes>

设置最大下载文件大小(单位字节)。如果请求文件大于这个值,传输不会开始并且curl会返回63错误代码。

注意:文件大小并不总是在下载之前就已知的,并且对于这样的文件,即使文件传输结束时比这个给定的限制的值大的话,该选项将不起作用。这涉及到FTP和HTTP传输。


-m/--max-time <seconds>

设置你容许整个操作过程花费的时间(单位秒)。可见--connect-timeout选项。此选项使用多次,则以最后一次为准。


-M/--manual 帮助文档


-n/--netrc

让curl在用户家目录扫描 .netrc (_netrc on Windows)文件来登录用户名和密码。这在UNIX系统上的FTP比较常用,curl将会开启用户认证。可以看netrc(4) 或 ftp(1)来获得更多的文件格式方面的细节。如果没有正确的权限,curl将不会解释文件。环境变量 "HOME"通常被用来寻找家目录。

一个简单的例子,容许curl登录到host.domain.com主机的FTP服务,用用户名 'myself'和密码 'secret'。

machine host.domain.com login myself password secret


--netrc-optional

跟--netrc很类似,但是此选项让.netrc用法可选并且非强制性的。


--negotiate

(HTTP)开启GSS-Negotiate认证。GSS-Negotiate方法是微软设计的,并且使用在web应用上面。首先意味着对Kerberos5认证的支持,但是也可能和其他的认证方式一起用。要获得更多的信息,请看IETF draft draft-brezak-spnego-http-04.txt.

如果你需要开启代理认证的协商,就要使用 --proxy-negotiate。

这个选项需要GSSAPI库的支持。这不常见。使用-V/--version来看你的版本是否支持 GSS-Negotiate。 

当使用这个选项时,你必须提供一个伪 -u/--user选项来激活认证代码。发送一个'-u :'足够表示用户名和密码的,如果-u选项没有真正被使用的时候。

如果该选项被多次使用,在发生以下情况没有什么区别。


-N/--no-buffer

关闭输出流的缓存功能。在正常的工作环境下。curl将会使用一个标准缓存输出流来影响将要输出在块中的数据,当数据到达时,不一定准确的。

使用--buffer来开启缓存。


--no-keepalive

关闭TCP连接使用keepalive消息功能,默认的话curl是开启keepalive的功能的。使用--keepalive来开启。


--no-sessionid

(SSL)关闭curl使用SSL会话ID缓存功能。默认传输是使用缓存的。注意当尝试重用SSL会话ID的时候,没啥伤害。使用--sessionid开启SSL会话ID缓存功能。


--noproxy <no-proxy-list>

指定逗号分割的列表主机不能成为curl的代理主机,唯一的通配符是*号,将匹配所有主机,将会有效地关闭所有代理。主机名称可以用以下形式出现:local.com将会匹配local.com, local.com:80,和 www.local.com,但不可能是 www.notlocal.com. (在7.19.4版加入)。


--ntlm

(HTTP)打开NTLM认证。NTLM认证方式是微软设计的,并且被IIS web服务器使用。这是专利协议。如果要在使用代理时打开NTLM,则使用--proxy-ntlm。

这个选项需要SSL库的支持。使用-V/--version来看你的版本是否支持NTLM。如果该选项被多次使用,在发生以下情况没有什么区别。


-o/--output <file>

输出从标准输出转到文件里。如果你使用 {} 或者 []来获取多个文档的话,你可以使用“'#'数字”来表明第几个变量值。

比如:curl http://{one,two}.site.com -o "file_#1.txt"

curl http://{site,host}.host[1-5].com -o "#1_#2"

可以看 --create-dirs选项来动态创建本地目录的。指定'-'来强制输出到标准输出。


-O/--remote-name

把获取到的远程文件名做为本地保存文件的名称(只是用远程文件名哦,路径会被掐掉)


--remote-name-all

这个选项用于改变当-O/--remote-name被使用地方的默认行为。当--remote-name-all被使用时,如果你想针对指定的URL关闭它,那么就就需要使用"-o -" 或者 --no-remote-name选项。(在7.19.0版加入)


--pass <phrase>

(SSL/SSH)私钥密码。此选项使用多次,则以最后一次为准。


--post301

curl依照RFC 2616/10.3.2标准,并且在301重定向的时候,不把POST请求方式转换成GET方式。非RFC标准的行为在web浏览器上是普遍存在的,所以curl默认会做转换来维持持续性。无论如何,服务器POST到重定向后,可能还会需要POST。在使用 -L/--location 的时候,此选项才有意义。(由在7.17.1)


--post302

curl依照RFC 2616/10.3.2标准,并且在302重定向的时候,不把POST请求方式转换成GET方式。非RFC标准的行为在web浏览器上是普遍存在的,所以curl默认会做转换来维持持续性。无论如何,服务器POST到重定向后,可能还会需要POST。在使用 -L/--location 的时候,此选项才有意义。(由在7.19.1)


--proxy-anyauth

在与代理交互时,让curl自己挑选一个合适的认证方式。这会代理一个额外的来回请求(7.13.2中添加)


--proxy-basic

在与代理交互时,让curl使用基本(Basic)认证方式。使用--basic选项会打开HTTP与远程服务器的基本认证。基本认证是使用代理时的默认认证方式。


--proxy-digest

在与代理交互时,让curl使Digest认证方式。 使用--digest来打开与远程主机HTTP Digest认证。 


--proxy-negotiate

在与代理交互时,让curl使negotiate认证方式。使用--negotiate来打开与远程主机HTTP Negotiate 认证。 


--proxy-ntlm

在与代理交互时,让curl使NTLM 认证方式。使用--ntlm来打开与远程主机HTTP NTLM 认证。 


--proxy1.0 <proxyhost[:port]>

使用HTTP 1.0代理。如果端口没有指定,默认设置为1080.

与-x/--proxy代理选项唯一的区别,就是使用了HTTP1.0协议去连接,而非默认的HTTP1.1协议。


-p/--proxytunnel

当使用了-x/--proxy,这个选项将会导致非HTTP协议尝试在使用代理时建立通道,而非做一些类HTTP的操作。通道方法是和HTTP代理连接请求建立关系的,并且需要代理容许直接连接到curl想要建立通道连接的远程端口。


--pubkey <key>

(SSH)公钥文件名。容许你在文件中提供你的公钥信息。此选项使用多次,则以最后一次为准。


-P/--ftp-port <address>

(FTP)转换在与FTP服务器连接时的默认启动者/监听者的角色。这个转换使curl使用主动模式。在实践中,curl将告诉服务器主动去连接客户端的地址是端口,当被动模式要求服务器设置一个ip地址和端口来让客户端去连接。,<address>必须是下面的一种:

接口:例如"eth0",仅适用Unix

ip地址:192.168.10.1

主机名:"my.host.domain"


控制连接(control connection)的时候,curl也将适用同样的ip地址。

此选项使用多次,则以最后一次为准。使用--ftp-pasv关闭端口使用。使用-disable-eprt来关闭尝试使用 EPRT命令替代PORT命令。

在7.19.5开始,你可以添加":[start]-[end]"到地址的右侧,让curl知道使用一个什么范围的tcp端口。


-q

如果在命令行中使用此选项做为第一个参数, curlrc配置文件将不会被读取和使用。查看-K/--config来获取更多细节。


-Q/--quote <command>

(FTP/SFTP) 发送一个任意命令到远程FTP或者SFTP服务器。引用命令( Quote commands )将会在传输之前就被发送(就是在PWD命令之后)。如果要想让命令在一个成功的输送之后被发送,在命令前面加个'-'前缀。想要命令在libcurl已经改变工作目录之后被发送的话 (也就是在传输命令command(s)之前),命令前面加个 '+'前缀(仅支持FTP)。你可以指定任意数量的命令。如果一个命令服务器返回失败信息,整个操作都将被丢弃。你必须已经RFC959对FTP服务器定义的语法来设置正确的FTP命令,或者是下面属于SFTP服务的命令。此选项可以被多次使用。


SFTP是一个二进制协议。不像FTP,libcurl解释SFTP的引用命令在发送到服务器之前。下面就是SFTP的引用命令( Quote commands )列表:

chgrp group file

改变文件的组id信息

chmod mode file

改变文件的权限信息

chown user file

改变文件所属人id

ln source_file target_file

改变文件软连接的源

mkdir directory_name

新建目录

pwd

返回当前工作目录的绝对路径

rename source target

重命名源操作数由目标操作数指定的目标路径指定的文件或目录。

rm file

删除文件

rmdir directory

删除目录

symlink source_file target_file

与ln source_file target_file一样。


--random-file <file>

(SSL)指定包含数据数据的文件名。这些数据被用来做为SSL连接的随机引擎种子。参照--egd-file选项。


-r/--range <range>

(HTTP/FTP/SFTP/FILE) 从一个HTTP/1.1, FTP 或者 SFTP 或者本地FILE检索一个字节范围,如下方式:

0-499 指定第一个500字节

500-999 指定第二个500字节

-500 指定最后一个500字节

9500- 指定从偏移值9500开始往前

0-0,-1 指定第一个和最后一个字节(*)

500-700,600-799 指定从偏移值500开始的300字节

100-199,500-599 指定两个独立的100字节范围(*)


注意(*),服务器会产生多个响应。

此选项使用多次,则以最后一次为准。


--raw

关闭所有内部的HTTP解码或者传输编,什么都不变就传输(在7.16.2版加入)


-R/--remote-time

尝试计算远程文件的时间戳,如果可以获取到,将使本地文件也使用同样的时间戳


--retry <num>

返回一个错误,curl将会尝试再次连接,此选项就是设置尝试次数的。0表示不尝试(默认值)。错误可能是超时,FTP或HTTP的5xx响应码。


当然curl在尝试重新连接之前,它会先等待一秒,以后的每次尝试都会双倍这个等待时间,直到等待时间为10分钟。使用--retry-delay你将关闭这个指数级的补偿算法。可参照--retry-max-time来限制总共的容许尝试的时间(7.12.3中添加)。如果该选项被多次使用,最后出现的决定的数量值。


--retry-delay <seconds>

设置尝试之间的等待时间,设置为0则是默认的补偿时间机制,仅在 --retry被使用的时候才有效。(7.12.3中添加)如果该选项被多次使用,最后出现的决定的数量值。


--retry-max-time <seconds>

在第一次尝试之前尝试时间计数器被重置,没达到这个值的话,尝试照常进行。如果想限制单个求请求的最大时间,使用 -m/--max-time选项。将此选项设置为零,不设置重试超时时间。(7.12.3中添加)如果该选项被多次使用,最后出现的决定的数量值。


-s/--silent

静默模式,不显示进度条或者错误信息。


-S/--show-error

显示错误信息。


--socks4 <host[:port]>

使用SOCKS4代理。如果端口没有被指定,默认为1080。此选项覆盖之前的-x/--proxy。此选项使用多次,则以最后一次为准。


--socks4a <host[:port]>

使用SOCKS4a代理。如果端口没有被指定,默认为1080。此选项覆盖之前的-x/--proxy。此选项使用多次,则以最后一次为准。


--socks5-hostname <host[:port]>

使用SOCKS5代理(且让代理解析主机名)。如果端口没有被指定,默认为1080。此选项覆盖之前的-x/--proxy。此选项使用多次,则以最后一次为准。


--socks5 <host[:port]>

使用SOCKS5代理(且在本地解析主机名)。如果端口没有被指定,默认为1080。此选项覆盖之前的-x/--proxy。此选项使用多次,则以最后一次为准。在 IPV6, FTPS or LDAP下此选项(--socks4也同样)不起作用


--socks5-gssapi-service <servicename>

sock服务器的默认服务器名是rcmd/server-fqdn。这个选项容许你改变它。

例如:--socks5 proxy-name --socks5-gssapi-service sockd  将使用sockd/proxy-name

--socks5 proxy-name --socks5-gssapi-service sockd/real-name 将使用sockd/real-name 以防止当 proxy-name不匹配主要名称时在7.19.4版加入)。


--socks5-gssapi-nec

做为gssapi协商保护模式的一部分。rfc1961在4.3/4.4说明了它必须被保护。但是NEC参照实施没有这样。--socks5-gssapi-nec选项容许改变保护模式协商不被保护的。(在7.19.4版加入)


--stderr <file>

将错误消息都转到指定文件里面。如果<file>为 '-',错误被输出到标准输出终端。此选项使用多次,则以最后一次为准。


--tcp-nodelay

打开TCP_NODELAY选项。 查看curl_easy_setopt(3) 获取更多细节。


-t/--telnet-option <OPT=val>

设置telnet协议选项。支持值为:

TTYPE=<term> 设置终端类型

XDISPLOC=<X display> 设置X显示位置

NEW_ENV=<var,val> 设置一个环境变量。


-T/--upload-file <file>

指定需要上传的本地文件名。使用"-"则需要在标准输入中输入文件名。在非阻塞模式中如果设置了"." 替代"-",那么将容许读取服务器输出。

你可以指定 -T + URL。 

例如:

curl -T "{file1,file2}" http://www.uploadtothissite.com

或者curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/


--trace <file>

对来往的数据打开完全的追踪模式,包括描述信息,导出到一个文件里面。使用 "-"则输出到标准输出终端。


此选项覆盖之前的-v/--verbose 或者 --trace-ascii。此选项使用多次,则以最后一次为准。


--trace-ascii <file>

对来往的数据打开完全的追踪模式,包括描述信息,导出到一个文件里面。使用 "-"则输出到标准输出终端。


很像 --trace,但是不包括十六进制部分,且仅导出ASCII部分。


此选项覆盖之前的-v/--verbose 或者 --trace-ascii。此选项使用多次,则以最后一次为准。


--trace-time

在每个追踪信息每行前添加时间戳信息(在7.14.0版加入)


-u/--user <user:password>

指定用户名和密码做为服务器认证。覆盖-n/--netrc 和 --netrc-optional.

如果你给定了用户名(没有用冒号),curl将提示输入密码的。

如果你使用了支持SSPI的curl库,且做NTLM认证,只需要使用"-u :"可以从你的环境中强制curl去选择用户名和密码。此选项使用多次,则以最后一次为准。


-U/--proxy-user <user:password>

指定用户名和密码做为代理服务器认证。

如果你给定了用户名(没有用冒号),curl将提示输入密码的。

如果你使用了支持SSPI的curl库,且做NTLM认证,只需要使用"-u :"可以从你的环境中强制curl去选择用户名和密码。此选项使用多次,则以最后一次为准。


--url <URL>

指定URL,在你想指定URL在一个配置文件里面是比较便利


这个选项可以被多次使用。 使用-o/--output 或者 -O/--remote-name选项来控制URL被写到哪里


-v/--verbose

冗长模式,对调试比较哟偶用。'>'代表curl发送的头部数据"header data",'<'代表curl接收的头部数据"header data",行前有'*'开头的,表示curl提供的额外信息。

注意如果只想显示头部信息,那么就用-i/--include选项。

如果考虑此选项给的信息还不够的话,可以使用--trace 或者 --trace-ascii替代。

此选项会覆盖之前设置的--trace 或者 --trace-ascii


-V/--version

显示curl相关信息和libcurl的版本信息。

第一行包含全部的curl,libcurl和其他第三方库的完整版本信息

第二行("Protocols:"开头),说明支持的协议

第三行("Features:"开头),显示libcurl支持的特别特性。包括一下特性:

IPv6   支持IPv6

krb4 FTPS支持Krb4

SSL 支持HTTPS 和 FTPS

libz HTTP自动压缩或者解压缩

NTLM 支持NTLM认证

GSS-Negotiate FTP支持Negotiate认证和 krb5

Debug 支持DEBUG模式

AsynchDNS curl支持匿名解析

Largefile 支持超过2GB大文件的传送

IDN 支持IDN-国际域名(international domain names)

SSPI 支持SSPI。如果你使用NTLM协议,并且设置空白用户名,curl将认证你当前环境的用户名和密码。


-w/--write-out <format>

定义在成功交互之后在标准输出终端输出什么样的内容。如果<format>是string,那么包含明文与数字混合。这个string可以被指定为"string",通过指定"@filename"来哪个文件中读取,如果充标准输入则用"@-"。

输出格式中的变量将会被curl认为合适的值或者文本来替换。变量都是这样 %{variable_name},所以想输出一个%,那么你就要写入%%。 \n换行符,

\r,\t制表符。


变量列表:

url_effective URL最后被获取。可能你已经告诉curl来跟踪location: headers

http_code 在从 HTTP(S)或FTP(s)传输最后检索到的响应代码,7.18.2版本中跟response_code意义一样

http_connect CONNECT请求最后得到的代码(7.12.4中添加)

time_total 整个交互的总共时间(秒)

time_namelookup 从开始到域名解析完成花费的时间(秒)

time_connect 从开始到与远程服务器(或者代理)建立连接所消耗的时间(秒)

time_appconnect 从开始到SSL/SSH/等等与远程服务器连接或者握手完成的时间(秒)(在7.19.0版加入)

time_pretransfer 从开始到文件传输开始的时间(秒),包括一些协议涉及到的所有预传输(pre-transfer)命令和协商。

time_redirect 所有转发步骤包括在最后交互开始之前的域名解析,连接,预传输,传输。这个变量说明了多个转发的最终执行时间。(7.12.3中添加)

time_starttransfer 从开始到第一个自己开始被传输的时间(秒)。这个包括 time_pretransfer的时间,也包括服务器计算结果的时间。

size_download 下载的总字节数

size_upload 上传的总字节数

size_header 下载的头部总字节数

size_request HTTP请求的总字节数

speed_download 完全下载的平均下载速度

speed_upload 完全上传的平均上传速度

content_type 请求头部中的Content-Type

num_connects 最近传送时的新连接数量(7.12.3中添加)

num_redirects 请求中的转发次数(7.12.3中添加)

redirect_url 当一个HTTP求求没有用-L选项来追随转发,这个变量将显示实际的URL(7.18.2中添加)

ftp_entry_path 刚登录到FTP服务器上的libcurl初始路径(在7.15.4版加入)

ssl_verify_result SSL认证的结果,0代表成功(在7.19.0版加入)


此选项使用多次,则以最后一次为准。


-x/--proxy <proxyhost[:port]>

使用指定的HTTP代理,如果端口没有被指定,默认为1080.

这个选项覆盖设置代理使用的已存在的环境变量。如果环境变量设置了一个代理,你可以设置代理""来覆盖


注意:所有通过HTTP代理的操作都是被透明地传送给HTTP。也就意味着固定协议的指定操作可能不可得。当然你可以用-p/--proxytunnel选项来设置专门通道。


从7.14.1开始,代理主机可以像指定代理环境变量一样被设定,包括协议头部 (http://) ,且可以嵌入用户名和密码。


此选项使用多次,则以最后一次为准。


-X/--request <command>

(HTTP)在与HTTP交互时指定一个自定义请求方式来使用。默认是GET方式。常用的额外HTTP请求方式包括PUT和DELETE,当时WebDAV技术还提供PROPFIND, COPY, MOVE等选项。

(FTP) 指定一个自定义的FTP命令,而非默认的LIST命令

此选项使用多次,则以最后一次为准。


-y/--speed-time <time>

如果一个下载在speed-time阶段慢于每秒多少个字节的速度限制的话,下载将终止。如果 speed-time被使用,默认speed-limit为1,除非设置了-Y选项。


这个选项控制传输,因此不会影响慢的连接。可以使用--connect-timeout选项。

此选项使用多次,则以最后一次为准。



-Y/--speed-limit <speed>

如果在speed-time秒阶段一个下载慢于给定速率(每秒的字节数),下载将终止。speed-time与-y一起被设置,且默认为30.

此选项使用多次,则以最后一次为准。


-z/--time-cond <date expression>

(HTTP/FTP)请求一个晚于在给定时间日期被修改过的文件。可以参考curl_getdate(3)获得更多详细信息。

如果以'-'开头,则表示早于给定时间的文件。

此选项使用多次,则以最后一次为准。



--max-redirs <num>

设置最大容许跳转的数量。如果-L/--location被使用,这个选项将被使用来避免curl荒谬的追踪。默认是50次,如果-1则表示无限制。

此选项使用多次,则以最后一次为准。


-0/--http1.0

强制使用HTTP 1.0,替代默认的HTTP1.1


-1/--tlsv1

(SSL) 强制curl使用 TLS版本1,当与远程 TLS服务器协商的时候。


-2/--sslv2

(SSL) 强制curl使用 SSL版本2,当与远程SSL服务器协商的时候。


-3/--sslv3

(SSL) 强制curl使用 SSL版本3,当与远程SSL服务器协商的时候。


-4/--ipv4

使用ipv4


-6/--ipv6

使用ipv6


-#/--progress-bar

使用进度条替代默认统计信息



文件(Files)

~/.curlrc 默认的配置文件, -K/--config选项有更多细节



环境

环境变量可以被指定为小写或者大写字母。小写有优先权,除了http_proxy,它支持小写。


http_proxy [protocol://]<host>[:port]

设置HTTP使用的代理服务器

HTTPS_PROXY [protocol://]<host>[:port]

设置HTTPS使用的代理服务器

FTP_PROXY [protocol://]<host>[:port]

设置FTP使用的代理服务器

ALL_PROXY [protocol://]<host>[:port]

如果代理没有指定协议,则设置代理服务器去使用

NO_PROXY <comma-separated list of hosts>

主机名列表不应该通过任何代理, '*' 匹配所有主机


退出码(Exit Codes)


1 不支持的协议

2 初始化失败

3 URL语法不正确

5 给定代理不能被解析

6 远程主机不能被解析

7 连接主机失败

8 FTP怪异的回应。服务器发送数据curl不能解析

9 FTP拒绝访问

11 FTP怪异PASS回应

13 FTP怪异PASV回应

14 FTP怪异227格式

15 FTP获取不到主机

17 FTP不能改变传送模式到二进制模式

18 仅有一部分文静被传输

19 FTP不能下载或者访问给定文件,RETR命令失败

21 FTP引用错误

22 HTTP页面不可以被检索。请求的url不能被找到,或者放回了一个400以上的错误码(-f/--fail被使用的话)

23 curl不能写入数据到本地文件系统

25 FTP不可以存储文件到本地

26 读失败

27 内存请求失败

28 操作超时

30 FTP PORT执行失败

31 FTP不能使用REST。

33 HTTP范围错误

34 HTTP post错误

35 SSL连接错误

36 FTP续传失败

37 失败打开文件

38 LDAP绑定失败

39 LDAP搜索失败

41 LDAP功能未发现

42 强制终止

43 内部错误。函数调用了一个错误的参数

45 内部错误。出口接口不能被使用

47 太多跳转,达到最大值

48 未知TELNET选项指定

49 畸形telnet选项

51 SSL认证或者SSH MD5指纹匹配失败

52 服务器不回应任何信息

53  找不到SSL加密引擎

54 不能设置SSL加密引擎

55 发送网络数据失败

56 接受网络数据失败

58 本地证书有问题

59 不能使用SSl密码

60 用已知CA证书不能被一端认证

61 未识别的传送编码方式

62 无效的LDAP URL

63 超过最大文件大小

64 失败请求FTP SSL 等级

65 发送数据需要回转失败了

66 初始化SSL引擎失败

67 登录失败

68 在TFTP服务器上未找到文件

69 TFTP服务器权限问题

70 TFTP服务器超出磁盘空间

71 非法TFTP操作

72 未知的TFTP传送ID

73 TFTP上文件已存在

74 TFTP上没有此用户

75 字符转换失败

76 需要字符转换函数

77 读取SSL CA证书有问题

78 URL的引用源不存在

79 SSH会话期间,未指定的错误发生

80 关闭SSL连接失败

82 不能载入CRL文件,丢失或者格式错误(7.19.0添加)

83 发行者检查失败(在7.19.0添加)。

XX 将来会出现更多的错误代码。