私が探しています解析されていない生のHTTPS応答を取得する最も直接的な方法HTTPSを介してそのURLにGETリクエストを行い、解析されていない生の応答を受け取ります。
以下はうまくいきます:
echo 'GET / HTTP/1.1
Host: google.com
' | openssl s_client -quiet -connect google.com:443 2>/dev/null
しかし、リクエストをテキストファイルに入れてcat
コマンドに渡したいと思います。
だから私は作りました。raw-http.txt
GET / HTTP/1.0
Host: google.com
明確に言えば、後ろにスペースがありますHost: google.com
。
今私が試したとき:
cat raw-http.txt | openssl s_client -quiet -connect google.com:443 2>/dev/null
それはただ長い時間停止して反応します^X%
。
echo
ここで働くのになぜcat
できないのですか?私は何をすべきですか?
ベストアンサー1
後ろにスペースがあります。
2つあるはずです。
$ echo '"'; cat raw.txt; echo '"'
"
GET / HTTP/1.0
Host: google.com
"
$ cat raw.txt | openssl s_client -quiet -connect google.com:443 2>/dev/null
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>
あなたのecho
例では、望ましくない改行文字が追加されているので、次のように動作します。
echo 'GET / HTTP/1.1
Host: google.com
' | openssl s_client -quiet -connect google.com:443 2>/dev/null