我正在使用 Ubuntu,并且切换到 netcat-traditional 版本,但是当我尝试发出简单的 HTTP 请求时,它总是失败,任何情况下,任何服务器都会给出 400 Bad request:(Apache Ubuntu 正在端口 80 上运行)
nc localhost 80
我简单地发送了:
GET / HTTP/1.1
Host: localhost
简单或复杂的请求,总是给出相同的错误,我认为它可能与“bash”或“系统”编码有关,但我测试了构建一个“虚拟”HTTP请求,如上所示,并保存在单独的文件中以直接输入,但给出相同的错误(400...):
nc localhost 80 < header.txt
答案1
我发现问题出在 EOL 上。即使服务器运行在 Linux/Unix 上,我也必须使用 MS-DOS 的 EOL(将“\n”更改为“\r\n”)系统。
保存时,如果是 gedit,只需在 gedit 的“另存为”屏幕中的“行结尾”选项中选择“Windows”即可解决所有问题。