web-dev-qa-db-ja.com

生の未解析のHTTPS応答を取得する最も簡単な方法

HTTPSを介してURLにGETリクエストを送信し、未処理の解析されていない応答を取得する最も簡単な方法は何ですか?

これはカールで達成できますか?その場合、どのオプションを使用する必要がありますか?

41
Acorn

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

何をしたいかによって、これが問題になる場合とそうでない場合があります。

取得するのは、要求されたURLにあるすべてのHTTP応答ヘッダーとドキュメントです。

55
Mika Fischer

ここに頭に浮かぶ簡単な方法があります

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

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

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
Chris Down
$ GET -e https://www.google.com

Debian/Ubuntuでは、ディストリビューションはlwp-requestパッケージに属しています。

1
funollet