我正在尝试使用 netcat 连接到在我的本地主机上运行的 80 端口的 Nginx 服务器。但是,尽管我发送了任何标头(GET、POST、HEAD),但我一直收到相同的错误页面。有人可以向我解释为什么吗?
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>
我正在运行上面相同的命令,但我仍然得到 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>
我还使用 netstat 命令检查了我的 nginx 服务器是否正在运行。输出如下:
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
echo
(在 bash 和 中/bin/echo
)默认情况下不展开转义。这意味着您的 CR 和 LF 字符实际上是作为\r
and发送的\n
。您需要提供-e
选项才能启用转义。