curl command curl [kɜrl]
options --version, print version -s, --silent, 不显示下载进度, 不显示 error message -S, --show-error 在使用 -s 时, 打印 curl error message -C, --continue-at, 断点续传 -o, --output <file>, write output to <file> instead of stdout --connect-timeout <fractional seconds>, 建连接超时, 比如 tcp 三次握手 -m, --max-time <fractional seconds>, 单位: 秒, 可以用小数 0.5 代表 500ms, 传输超时, 比如 http 请求发送之后长时间没有响应, tcp 的 ack 收到了, 但是长时间没收到 http response. -G/--get 以 get 的方式来发送数据 -i, --include 输出时包括 protocol 头信息, 显示 response header, 例如: HTTP/1.0 200, Content-Type: text/plain -v, verbos -N, Disables the buffering of the output stream -I, --head 只返回头信息, 比如 FTP 服务器只返回文件大小. -H, --header LINE Custom header to pass to server (H) -d, --data # DATA HTTP POST data, 如果使用 -d 命令,curl 会以 application/x-www-url-encoded 格式上传参数。 从文件中读取数据 -d @/path/to/foo.json -b, --cookie <data|filename>, 发送请求时附带 cookie。可以直接传入 cookie 字符串,或从文件中读取 cookie --retry, 重试次数 -F curl 会以 multipart/form-data 的方式发送 POST 请求。-F 以 key=value 的形式指定要上传的参数,如果是文件,则需要使用 key=@file 的形式。 -k, --insecure flag to skip certificate validation. -L, --location: 追踪重定向, 如果服务器报告请求的页面已移动到其他位置(用 location: header 和 3xx 响应代码),此选项将使 curl 在新位置上重新执行请求。 -x, 参数指定 HTTP 请求的代理 -X, --request <method> Specify request method to use, -X POST, -X PUT -w, 完成请求传输后,使 curl 在 stdout 上显示自定义信息 --cacert, curl 用来验证对端的 CA 证书 -E, --cert, 客户端证书 --key, 客户端私钥 --pass, 客户端私钥的密码 --trace-ascii /tmp/curl.log, 把交互的数据打印到日志里, https 协议也能把明文打在日志里 -tlsv1.x 这个参数并不是说客户端按你指定的tls版本去跟服务端匹配,不是==的关系,是在≥的关系里面desc降序匹配, 比如支持tls1.0/1.1/1.2的Server,客户端分别以--sslv3、--tlsv1.0、--tlsv1.1、--tlsv1.2这些参数去请求,最终的结果都是以--tlsv1.2去建联,这就是我说的“在≥的关系里面desc降序匹配” --tls-max 1.x 这个参数则是限定死了,最大按哪个来, 比如说服务端最大支持到tlsv1.2,客户端限定最大按tlsv1.3来,那最终肯定就是以tlsv1.2建联了;如果服务端不变,我指定客户端以--tls-max 1.1请求,那最终肯定是以tlsv1.1建联了 -f, --fail 快速失败, 在服务器出错时不显示HTTP错误信息, 直接返回 error 22 -w -w 的作用 完成请求传输后,使 curl 在 stdout 上显示自定义信息 格式是一个字符串,可以包含纯文本和任意数量的变量
...