Os cabeçalhos em uma solicitação HTTP devem usar os finais de linha CRLF (Windows). (Consulte Wikipédia ou RFC 2616 .) Muitos servidores suportam terminações de linha LF (Unix) como uma extensão, mas não esta.
Além disso, o HTTP 1.1 requer uma linha de cabeçalho Host:
, como Warren Young apontou . (Consulte Wikipédia ou 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
ou mais legivelmente
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
Mas por que não usar o wget ou o curl, que construirão uma solicitação válida sem suar e ainda permitirão que você especifique cabeçalhos personalizados, se necessário?