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


39

HTTPS経由でURLにGETリクエストを行い、未処理の未解析の応答を取得する最も簡単な方法は何でしょうか?

これはcurlで実現できますか?その場合、どのオプションを使用する必要がありますか?

回答:


51

を使用したい場合curl、これは動作するはずです:

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

ただし、これは正確な生の応答ではないことに注意してください。たとえば、チャンク転送エンコーディングは応答に表示されません。これを--raw解決するには、冗長モード(-v)も役立ち、-i応答本文の前にヘッダーが表示されます。

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

結果に対して以下のようなページャーを使用する場合は、進行状況バー(-s)を無効にする必要もあります。

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

あなたが何をしたいかによって、これは問題になるかもしれませんし、そうでないかもしれません。

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


13

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

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

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

一部のサーバー(例:github.com)のみで動作することに注意してくださいHTTP/1.0
Steven Penny

4

そうではありませんが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 }'

これにより\r\n、応答の文字が保持されるかどうか知っていますか?
ドングリ

@Acorn-まず、すべてのWebサーバーが\r\n行末として応答するわけではありません。いずれにせよこれが保存されるとは思わないが、もしそれがあなたにとって重要なら、答えにその結果を得る方法を追加する。
クリスダウン

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.