调用-v
/--verbose
将curl(1)
显示请求和响应的 HTTP 标头(还会告诉我 curl 是否正在遵循重定向)。但如果服务器通过 HTTPS/SSL/TLS,那么它还会向我提供几行有关 TLS/SSL 连接的信息。我关心的是 HTTP 标头,而不是 SSL 详细信息。
是否可以让 curl 显示 HTTP 标头而不是 SSL 连接详细信息?
$ curl --version
curl 7.83.1 (x86_64-pc-linux-gnu) libcurl/7.83.1 OpenSSL/3.0.3 zlib/1.2.11 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.10.0 nghttp2/1.47.0 librtmp/2.3 OpenLDAP/2.5.12
Release-Date: 2022-05-11
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd
答案1
curl -D - https://uri/
将显示响应的标题+正文。
答案2
curl -I
执行 HEAD 请求并显示标题(可能没有正文)。
curl -i
允许使用任意请求方法,并显示标题和正文。
从男人卷曲:
-I, --head
(HTTP FTP FILE) Fetch the headers only! HTTP-servers feature
the command HEAD which this uses to get nothing but the header
of a document. When used on an FTP or FILE file, curl displays
the file size and last modification time only.
-i, --include
Include the HTTP response headers in the output. The HTTP
response headers can include things like server name, cookies,
date of the document, HTTP version and more...
To view the request headers, consider the -v, --verbose option.
See also -v, --verbose.
答案3
curl -v https://example.com 2>&1 > /dev/null | grep -P '^[<>]'
这也隐藏了其他一些东西,比如 IP、端口等,但如果你只对标题感兴趣,它就可以起作用。