为什么我不能让netcat与我的Rails服务器通话?

时间:2015-01-04 02:16:52

标签: webserver netcat

我有一个在本地运行的瘦服务器,为Rails应用程序提供服务。按照netcat手册页中的示例,我尝试使用nc与我的服务器通信:

echo -n "GET / HTTP/1.1\r\n\r\n" | nc 0.0.0.0 3000

但我收到了400回复:

HTTP/1.1 400 Bad Request
Content-Type: text/plain
Connection: close
Server: thin 1.6.1 codename Death Proof

我错过了什么?

1 个答案:

答案 0 :(得分:2)

HTTP 1.1需要提供Host:标头。您还需要将-e标志添加到echo命令以转义字符序列,因此

echo -en "GET / HTTP/1.1\r\nHost: localhost\r\n\r\n" | nc 0.0.0.0 3000

可以使用,或者你也可以使用不需要Host:标题的HTTP 1.0,所以

echo -en "GET / HTTP/1.0\r\n\r\n" | nc 0.0.0.0 3000