获取原始、未解析的 HTTPS 响应的最直接方法

获取原始、未解析的 HTTPS 响应的最直接方法

通过 HTTPS 向 url 发出 GET 请求并获取原始的、未解析的响应的最直接方法是什么?

这可以通过curl来实现吗?如果是这样,您需要使用哪些选项?

答案1

如果你想使用curl,这应该可以:

curl -D - https://www.google.com/

但请注意,这并不完全是原始响应。例如分块传输编码在响应中将不可见。使用--raw解决了这个问题,详细模式 ( -v) 也很有用,并-i在响应正文之前显示标头:

curl -iv --raw https://www.google.com/

如果你想在结果上使用 less 之类的分页器,还需要禁用进度条 ( -s):

curl -ivs --raw https://www.google.com/ | less

根据您想要执行的操作,这可能会或可能不会成为问题。

您得到的是所有 HTTP 响应标头和请求 URL 处的文档。

答案2

这是想到的一个简单方法

echo 'GET / HTTP/1.1
Host: google.com

' | openssl s_client -quiet -connect google.com:443 2>/dev/null

答案3

它不是curl,但它应该在几乎所有的 Unices 上可用:

wget -S --spider https://encrypted.site

如果状态消息令您困扰:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  /'

如果你想要 CRLF 行结尾:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  / { sub(/$/,"\r"); print }'

答案4

$ GET -e https://www.google.com

在 Debian/Ubuntu 发行版上属于该软件包lwp-request

相关内容