帮助文件完整翻译,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 命令使用场景示例
-
基本请求
发送 GET 请求
curl https://example.com
发送 POST 请求
curl -X POST https://example.com
-
指定请求头
设置 User-Agent
curl -H "User-Agent: MyCustomUserAgent" https://example.com
发送多个头
curl -H "Authorization: Bearer " -H "Content-Type: application/json" https://example.com
-
发送数据
使用 -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
-
认证和授权
基本认证(用户名和密码)
curl -u username:password https://example.com
Bearer Token 认证
curl -H "Authorization: Bearer " https://example.com
-
指定代理
使用代理
curl -x http://proxyserver:port https://example.com
使用 SOCKS5 代理
curl --socks5 proxyserver:port https://example.com
-
文件下载和上传
下载文件并保存
curl -O https://example.com/file.zip
下载并重命名文件
curl -o myfile.zip https://example.com/file.zip
上传文件
curl -T myfile.zip https://example.com/upload
-
设置超时
设置连接超时
curl --connect-timeout 30 https://example.com
设置总超时
curl --max-time 60 https://example.com
-
处理重定向
跟随重定向
curl -L https://example.com
限制重定向次数
curl -L --max-redirs 3 https://example.com
-
获取响应头
显示响应头
curl -I https://example.com
显示请求和响应头
curl -v https://example.com
-
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
-
调试和日志
启用调试模式
curl -v https://example.com
输出调试信息到文件
curl --trace debug.txt https://example.com
获取详细的调试输出
curl --trace-ascii debug.txt https://example.com
-
设置请求方法
使用 PUT 请求
curl -X PUT -d '{"key":"value"}' https://example.com
使用 DELETE 请求
curl -X DELETE https://example.com/resource
-
其他常用选项
指定请求的 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
-
其他文件相关选项
保存 Cookie 到文件
curl -c cookies.txt https://example.com
读取 Cookie 文件
curl -b cookies.txt https://example.com
-
批量请求
从文件中读取 URL 并发送请求
curl -K urls.txt
这些是 curl 命令行工具的一些常用选项。根据需求的不同,您可以灵活组合这些选项来完成各种 HTTP 请求任务。
Comments NOTHING