Erro ao tentar se conectar ao servidor HTTP com o netcat

2

Estou tentando conectar-me ao servidor Nginx que está em execução no meu localhost na porta 80 usando o netcat. Mas estou recebendo a mesma página de erro o tempo todo, independentemente do cabeçalho (GET, POST, HEAD) que eu envio. Alguém pode me explicar por quê?

pradeep@pradeep-laptop:~$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc localhost 80
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.1.19</center>
</body>
</html>

Estou executando o mesmo comando acima, mas ainda estou recebendo a página html.

pradeep@pradeep-laptop:~$ echo -n "HEAD / HTTP/1.0\r\n\r\n" | nc localhost 80
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.1.19</center>
</body>
</html>

Eu verifiquei se o meu servidor nginx está rodando ou não usando o comando netstat também. A saída é a seguinte:

root@pradeep-laptop:/# netstat -taupen| grep LISTEN | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN          0          264102      13723/nginx     
    
por pradeepchhetri 29.07.2012 / 02:46

1 resposta

4

echo (no bash e /bin/echo ) não expande as fugas por padrão. Isso significa que seus caracteres CR e LF estão literalmente sendo enviados como \r e \n . Você precisa fornecer a opção -e para ativar as fugas.

$ echo -en "GET / HTTP/1.0\r\n\r\n" | nc localhost 80
HTTP/1.1 403 Forbidden
    
por 29.07.2012 / 02:49

Tags