curl命令帮助文件翻译以及常用命令示例

你是慕鸢呀~ 发布于 26 天前 0 次阅读 3563 字 预计阅读时间: 16 分钟


内容目录

帮助文件完整翻译,chatgpt翻译

--abstract-unix-socket <path>                 通过抽象 Unix 域套接字连接  
--alt-svc <filename>                          启用 alt-svc 并使用此缓存文件  
--anyauth                                     自动选择任意身份验证方法  
-a, --append                                  上传时追加到目标文件  
--aws-sigv4 <provider1[:prvdr2[:reg[:srv]]]>  使用 AWS V4 签名认证  
--basic                                       使用 HTTP 基本认证  
--ca-native                                   从操作系统加载 CA 证书  
--cacert <file>                               用于验证对端的 CA 证书  
--capath <dir>                                用于验证对端的 CA 目录  
-E, --cert <certificate[:password]>           客户端证书文件和密码  
--cert-status                                 验证服务器证书状态 (OCSP-staple)  
--cert-type <type>                            证书类型 (DER/PEM/ENG/P12)  
--ciphers <list>                              指定 TLS 1.2 (1.1, 1.0) 的加密算法  
--compressed                                  请求压缩的响应  
--compressed-ssh                              启用 SSH 压缩  
-K, --config <file>                           从文件中读取配置  
--connect-timeout <seconds>                   设置最大连接时间  
--connect-to <HOST1:PORT1:HOST2:PORT2>        将 host1 的连接重定向到 host2  
-C, --continue-at <offset>                    从指定偏移量继续传输  
-b, --cookie <data|filename>                  发送 Cookie 或从文件加载  
-c, --cookie-jar <filename>                   将 Cookie 保存到文件  
--create-dirs                                 创建所需的本地目录结构  
--create-file-mode <mode>                     创建文件时的权限模式  
--crlf                                        上传时将 LF 转换为 CRLF  
--crlfile <file>                              提供证书吊销列表 (CRL) 文件  
--curves <list>                               请求的 (EC) TLS 密钥交换算法  
-d, --data <data>                             HTTP POST 数据  
--data-ascii <data>                           以 ASCII 格式发送 HTTP POST 数据  
--data-binary <data>                          以二进制格式发送 HTTP POST 数据  
--data-raw <data>                             发送 HTTP POST 数据,允许 '@'  
--data-urlencode <data>                       URL 编码的 HTTP POST 数据  
--delegation <LEVEL>                          GSS-API 委托权限  
--digest                                      使用 HTTP Digest 身份验证  
-q, --disable                                 禁用 .curlrc 配置文件  
--disable-eprt                                禁用 EPRT 或 LPRT 命令  
--disable-epsv                                禁用 EPSV 命令  
--disallow-username-in-url                    禁止在 URL 中使用用户名  
--dns-interface <interface>                   指定 DNS 请求的接口  
--dns-ipv4-addr <address>                     指定用于 DNS 请求的 IPv4 地址  
--dns-ipv6-addr <address>                     指定用于 DNS 请求的 IPv6 地址  
--dns-servers <addresses>                     指定 DNS 服务器地址  
--doh-cert-status                             验证 DoH 服务器证书状态 (OCSP-staple)  
--doh-insecure                                允许不安全的 DoH 服务器连接  
--doh-url <URL>                               使用 DoH 解析主机名  
--dump-ca-embed                               将嵌入的 CA 捆绑包写入标准输出  
-D, --dump-header <filename>                  将收到的头部写入文件  
--ech <config>                                配置 ECH  
--egd-file <file>                             指定 EGD 随机数据套接字路径  
--engine <name>                               指定使用的加密引擎  
--etag-compare <file>                         从文件加载 ETag 比较  
--etag-save <file>                            解析收到的 ETag 并保存到文件  
--expect100-timeout <seconds>                 设置 100-continue 的等待时间  
-f, --fail                                    HTTP 错误时快速失败且无输出  
--fail-early                                  第一个传输错误即失败  
--fail-with-body                              HTTP 错误时保存响应体  
--false-start                                 启用 TLS False Start  
-F, --form <name=content>                     指定多部分 MIME 数据  
--form-escape                                 转义表单字段中的特殊字符  
--form-string <name=string>                   指定多部分 MIME 字符串数据  
--ftp-account <data>                          FTP 帐号数据  
--ftp-alternative-to-user <command>           替代 USER 命令的字符串  
--ftp-create-dirs                             如果远程目录不存在则创建  
--ftp-method <method>                         控制 CWD 使用方式  
--ftp-pasv                                    使用 PASV/EPSV 而非 PORT  
-P, --ftp-port <address>                      使用 PORT 而非 PASV  
--ftp-pret                                    在 PASV 之前发送 PRET  
--ftp-skip-pasv-ip                            跳过 PASV 响应中的 IP 地址  
--ftp-ssl-ccc                                 认证后发送 CCC  
--ftp-ssl-ccc-mode <active/passive>           设置 CCC 模式  
--ftp-ssl-control                             登录时需要 TLS,但传输时可用明文  
-G, --get                                     使用 GET 方法发送 POST 数据  
-g, --globoff                                 禁用 URL 通配符 {} 和 []  
--happy-eyeballs-timeout-ms <milliseconds>     设置 Happy Eyeballs 超时时间  
--haproxy-protocol                            发送 HAProxy PROXY 协议 v1 头  
--head                                        仅获取 HTTP 头部  
-H, --header <header/@file>                   设置自定义请求头  
--hostpubmd5 <md5>                            接受匹配的主机公钥 MD5  
--hsts <file>                                 启用 HSTS,使用指定文件作为缓存  
--http0.9                                     允许 HTTP 0.9 响应  
--http1.1                                     强制使用 HTTP/1.1  
--http2                                       使用 HTTP/2  
--http2-prior-knowledge                       直接使用 HTTP/2,而不降级  
--http3                                       使用 HTTP/3  
--ignore-content-length                       忽略 HTTP 的内容长度  
-i, --include                                 在输出中包含 HTTP 响应头  
--interface <name>                            使用指定的网络接口  
-I, --head                                    仅获取 HTTP 响应头  
--insecure                                    跳过 SSL/TLS 证书验证  
--json <data>                                 发送 JSON 格式的数据  
--keepalive-time <seconds>                    设置 TCP 保活时间间隔  
--key <file>                                  指定私钥文件  
--key-type <type>                             私钥文件类型 (DER/PEM/ENG)  
--krb <level>                                 使用 Kerberos (或 SPNEGO) 身份验证  
--libcurl <file>                              将操作代码输出为 libcurl 代码  
--limit-rate <speed>                          限制传输速度  
--local-port <num/range>                      设置本地端口号或范围  
--location                                    遵循服务器的重定向  
--location-trusted                            遵循并发送认证信息给重定向地址  
--login-options <options>                     指定服务器登录选项  
--mail-auth <address>                         提供邮件身份认证地址  
--mail-from <address>                         设置邮件发件人地址  
--mail-rcpt <address>                         设置邮件收件人地址  
--mail-rcpt-allowfails                        忽略收件人验证失败  
--max-filesize <bytes>                        设置最大允许的文件大小  
--max-redirs <num>                            限制重定向的次数  
-m, --max-time <seconds>                      设置最大允许的传输时间  
--metalink                                   处理 Metalink 文件输入  
--negotiate                                   使用 HTTP 的 GSS-Negotiate 认证  
--netrc                                       从 .netrc 文件读取认证信息  
--netrc-file <filename>                       指定要使用的 .netrc 文件  
--netrc-optional                              使用 .netrc,但文件不存在时继续  
--next                                        断开下一 URL 的配置链  
--no-alpn                                     禁用 ALPN  
--no-clobber                                  防止覆盖已存在的文件  
--no-keepalive                                禁用 TCP 保活  
--no-npn                                      禁用 NPN 协议  
--no-progress-meter                           禁用进度显示  
--no-sessionid                                禁用 SSL 会话 ID  
--noproxy <no-proxy-list>                     指定无需使用代理的地址  
--null                                        使用空输出模式  
-N, --no-buffer                               禁用输出的缓冲  
--oauth2-bearer <token>                       使用 OAuth 2.0 Bearer Token  
--output-dir <dir>                            保存文件到指定目录  
--output-file <file>                          指定输出文件名  
-o, --output <file>                           写入输出文件  
--parallel                                    启用并行传输  
--parallel-immediate                          立即启动并行传输,而不是排队  
--parallel-max <num>                          设置最大并行传输数量  
--pass <phrase>                               提供私钥密码  
--path-as-is                                  使用 URL 中提供的路径  
--pinnedpubkey <key>                          验证服务器的公钥  
--post301                                     在 HTTP 301 响应后仍使用 POST  
--post302                                     在 HTTP 302 响应后仍使用 POST  
--post303                                     在 HTTP 303 响应后仍使用 POST  
--preproxy [protocol://]host[:port]           设置前置代理  
--proto <protocols>                           允许的协议  
--proto-default <protocol>                    设置默认的协议  
--proto-redir <protocols>                     允许重定向的协议  
--proxy-anyauth                               使用任意代理身份验证方法  
--proxy-basic                                 使用基本代理身份验证  
--proxy-cacert <file>                         使用 CA 证书验证代理  
--proxy-capath <dir>                          CA 证书目录用于代理验证  
--proxy-cert <cert[:passwd]>                  用于代理验证的客户端证书  
--proxy-cert-type <type>                      指定代理证书类型 (DER/PEM)  
--proxy-ciphers <list>                        设置用于代理的密码列表  
--proxy-crlfile <file>                        提供代理验证的 CRL 文件  
--proxy-digest                               使用摘要代理身份验证  
--proxy-header <header/@file>                设置自定义代理请求头  
--proxy-http2                                使用 HTTP/2 代理  
--proxy-insecure                             跳过代理的 SSL/TLS 验证  
--proxy-key <key>                            代理的私钥文件  
--proxy-key-type <type>                      私钥类型 (DER/PEM/ENG)  
--proxy-negotiate                            使用 HTTP 的代理 GSS-Negotiate 认证  
--proxy-ntlm                                 使用 NTLM 代理身份验证  
--proxy-pass <phrase>                        私钥密码用于代理  
--proxy-pinnedpubkey <key>                   验证代理服务器的公钥  
--proxy-service-name <name>                  设置代理的服务名称  
--proxy-ssl-allow-beast                      允许代理 SSL BEAST 攻击缓解  
--proxy-tls13-ciphers <list>                 用于代理的 TLS 1.3 密码组  
--proxy-tlsauthtype <type>                   设置代理的 SSL 自动身份验证类型  
--proxy-tlspassword <password>               提供代理的 SSL 密码  
--proxy-tlsuser <user>                       提供代理的 SSL 用户名  
--proxy-tlsv1                               使用 TLSv1 代理  
--proxy-user <user:password>                设置代理身份验证的用户和密码  
--proxy1.0 <proxyhost[:port]>               使用 HTTP/1.0 的代理  
--pubkey <file>                             使用的 SSH 公钥文件  
-Q, --quote <command>                       在 FTP 或 SFTP 上传前/后发送命令  
--random-file <file>                        使用随机数种子文件  
--range <range>                             请求部分 HTTP 文档  
--rate <speed>                              限制传输速率  
--raw                                       发送“原始”HTTP 数据  
--remote-name                               保存文件使用远程文件名  
--remote-name-all                           对所有 URL 使用远程文件名  
--remove-on-error                           传输失败时删除部分文件  
--request-target                            使用指定的 HTTP 请求目标  
--resolve <host:port:addr[,addr,...]>       提供主机名解析  
--retry <num>                               失败时的最大重试次数  
--retry-all-errors                          失败时重试,忽略错误类型  
--retry-connrefused                         在连接被拒绝时重试  
--retry-delay <seconds>                     设置两次重试之间的延迟时间  
--retry-max-time <seconds>                  设置重试的最大时间限制  
--sasl-authzid <identity>                   使用 SASL 授权身份  
--sasl-ir                                   启用初始响应  
--service-name <name>                       设置服务名称  
--show-error                                在出错时显示错误消息  
--socks4 <host[:port]>                      使用 SOCKS4 代理  
--socks4a <host[:port]>                     使用 SOCKS4a 代理  
--socks5 <host[:port]>                      使用 SOCKS5 代理  
--socks5-basic                             使用基本 SOCKS5 认证  
--socks5-gssapi                            使用 GSS-API SOCKS5 认证  
--socks5-gssapi-nec                        使用 NEC 风格的 GSS-API  
--socks5-hostname <host[:port]>            使用 SOCKS5 代理 (解析远程主机名)  
--speed-limit <speed>                      如果传输速度低于此值则停止传输  
--speed-time <seconds>                     如果速度低于 --speed-limit 指定值时的等待时间  
--ssl-allow-beast                          允许对 SSL BEAST 攻击的缓解方案  
--ssl-no-revoke                            禁用 SSL 证书撤销检查  
--ssl-revoke-best-effort                   最佳努力进行 SSL 撤销检查  
--stderr <file>                            重定向错误输出到文件  
--styled-output <always|auto|never>        设置是否使用彩色输出  
--suppress-connect-headers                禁用 CONNECT 请求的主机头信息  
--tcp-fastopen                            启用 TCP 快速打开  
--tcp-nodelay                             启用 TCP_NODELAY 选项  
--telnet-option <opt=val>                 设置 Telnet 选项  
--tftp-blksize <value>                    设置 TFTP 块大小  
--tftp-no-options                         禁用 TFTP 选项支持  
--time-cond <time>                        基于时间条件的传输  
--timeout <seconds>                       设置超时时间  
--tls-max <VERSION>                       设置最大支持的 TLS 版本  
--tls13-ciphers <list>                    指定 TLS 1.3 的密码组  
--tlsauthtype <type>                      设置 TLS 自动认证类型  
--tlspassword <password>                  设置 TLS 密码  
--tlsuser <user>                          设置 TLS 用户名  
--tr-encoding                             请求传输编码 (Transfer-Encoding)  
--trace <file>                            启用调试并输出到文件  
--trace-ascii <file>                      启用调试 (ASCII 格式) 并输出到文件  
--trace-time                              在调试信息中添加时间戳  
--unix-socket <path>                      使用 Unix 套接字连接  
--upload-file <file>                      上传文件  
--url <URL>                               指定 URL (可以多次使用)  
--url-query <data>                        添加 URL 查询参数  
--user <user:password>                    设置服务器的用户和密码  
--user-agent <name>                       设置 User-Agent 请求头  
--verbose                                 启用详细输出  
--version                                 显示版本号并退出  
--write-out <format>                      控制 curl 输出的格式  
-x, --proxy [protocol://]host[:port]      使用代理服务器  
-X, --request <method>                    指定 HTTP 请求方法  
--xattr                                   将元数据存储为扩展文件属性

常用命令举例

下面是一些 curl 命令使用场景示例

  1. 基本请求

    发送 GET 请求

curl https://example.com

发送 POST 请求

curl -X POST https://example.com
  1. 指定请求头

    设置 User-Agent

curl -H "User-Agent: MyCustomUserAgent" https://example.com

发送多个头

curl -H "Authorization: Bearer " -H "Content-Type: application/json" https://example.com
  1. 发送数据

    使用 -d 发送 POST 数据 (默认是 application/x-www-form-urlencoded)

curl -X POST -d "key1=value1&key2=value2" https://example.com

发送 JSON 数据

curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1","key2":"value2"}' https://example.com

文件上传

curl -F "file=@/path/to/file" https://example.com/upload
  1. 认证和授权

    基本认证(用户名和密码)

curl -u username:password https://example.com

Bearer Token 认证

curl -H "Authorization: Bearer " https://example.com
  1. 指定代理

    使用代理

curl -x http://proxyserver:port https://example.com

使用 SOCKS5 代理

curl --socks5 proxyserver:port https://example.com
  1. 文件下载和上传

    下载文件并保存

curl -O https://example.com/file.zip

下载并重命名文件

curl -o myfile.zip https://example.com/file.zip

上传文件

curl -T myfile.zip https://example.com/upload
  1. 设置超时

    设置连接超时

curl --connect-timeout 30 https://example.com

设置总超时

curl --max-time 60 https://example.com
  1. 处理重定向

    跟随重定向

curl -L https://example.com

限制重定向次数

curl -L --max-redirs 3 https://example.com
  1. 获取响应头

    显示响应头

curl -I https://example.com

显示请求和响应头

curl -v https://example.com
  1. SSL/TLS 配置

    跳过 SSL 证书验证

curl -k https://example.com

使用特定的证书文件

curl --cert /path/to/cert.pem https://example.com

使用特定的密钥文件

curl --key /path/to/key.pem https://example.com
  1. 调试和日志

    启用调试模式

curl -v https://example.com

输出调试信息到文件

curl --trace debug.txt https://example.com

获取详细的调试输出

curl --trace-ascii debug.txt https://example.com
  1. 设置请求方法

    使用 PUT 请求

curl -X PUT -d '{"key":"value"}' https://example.com

使用 DELETE 请求

curl -X DELETE https://example.com/resource
  1. 其他常用选项

    指定请求的 URL 参数

curl "https://example.com?param1=value1¶m2=value2"

显示执行的 HTTP 请求和响应

curl -i https://example.com

发送文件内容作为输入

curl -d @data.txt https://example.com

使用 HTTP/2 协议

curl --http2 https://example.com

显示进度条

curl --progress-bar https://example.com
  1. 其他文件相关选项

    保存 Cookie 到文件

curl -c cookies.txt https://example.com

读取 Cookie 文件

curl -b cookies.txt https://example.com
  1. 批量请求

    从文件中读取 URL 并发送请求

    curl -K urls.txt

这些是 curl 命令行工具的一些常用选项。根据需求的不同,您可以灵活组合这些选项来完成各种 HTTP 请求任务。

我本桀骜少年臣,不信鬼神不信人。
最后更新于 2024-12-22