为什么我不能让 netcat 与我的 Rails 服务器通信?
Why can't I get netcat talking to my Rails server?
我有一个本地运行的瘦服务器,为 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
我错过了什么?
HTTP 1.1 需要提供 Host:
header。您还需要将 -e
标志添加到 echo
命令以转义字符序列,因此
echo -en "GET / HTTP/1.1\r\nHost: localhost\r\n\r\n" | nc 0.0.0.0 3000
可以,或者您可以使用不需要 Host:
header 的 HTTP 1.0,因此
echo -en "GET / HTTP/1.0\r\n\r\n" | nc 0.0.0.0 3000
我有一个本地运行的瘦服务器,为 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
我错过了什么?
HTTP 1.1 需要提供 Host:
header。您还需要将 -e
标志添加到 echo
命令以转义字符序列,因此
echo -en "GET / HTTP/1.1\r\nHost: localhost\r\n\r\n" | nc 0.0.0.0 3000
可以,或者您可以使用不需要 Host:
header 的 HTTP 1.0,因此
echo -en "GET / HTTP/1.0\r\n\r\n" | nc 0.0.0.0 3000