bad request
このコマンドを実行すると、なぜこれが起こるのか教えてくれる人はいますか?
echo -e "GET http://www.yellowpages.com.eg/Mjg3NF9VUkxfMTEwX2h0dHA6Ly93d3cubG90dXMtYWlyLmNvbV8=/Lotus-Air/profile.html HTTP/1.1\n\n" | nc www.yellowpages.com 80
同じウェブサイトがブラウザで正常に開くことができます。
ベストアンサー1
HTTP要求のヘッダーはCRLF(Windows)行末を使用する必要があります。 (望むよりウィキペディアまたはRFC 2616.) 多くのサーバーは拡張機能として LF(Unix) 行末をサポートしますが、このサーバーはサポートしていません。
また、HTTP 1.1にはHost:
次のヘッダー行が必要です。ウォーレン・ヤングは指摘した。。 (望むよりウィキペディアまたはRFC 2616)。
echo -e "GET http://www.yellowpages.com.eg/Mjg3NF9VUkxfMTEwX2h0dHA6Ly93d3cubG90dXMtYWlyLmNvbV8=/Lotus-Air/profile.html HTTP/1.1\r\nHost: www.yellowpages.com.eg\r\n\r\n" | nc www.yellowpages.com 80
またはより明確
sed $'s/$/\r/' <<EOF | nc www.yellowpages.com 80
GET http://www.yellowpages.com.eg/Mjg3NF9VUkxfMTEwX2h0dHA6Ly93d3cubG90dXMtYWlyLmNvbV8=/Lotus-Air/profile.html HTTP/1.1
Host: www.yellowpages.com.eg
EOF
しかし、有効なリクエストを簡単に設定し、必要に応じてカスタムヘッダーを指定できるwgetまたはカールを使用するとどうなりますか?