在 macOS 上使用 netcat 作为 Web 服务器的简单单一 HTTP 响应

simple single HTTP response using netcat as web server on macOS

我正在使用 macOS 并通过 Homebrew 安装了 netcat

$ brew info netcat
netcat: stable 0.7.1 (bottled)
Utility for managing network connections
http://netcat.sourceforge.net/
/usr/local/Cellar/netcat/0.7.1 (11 files, 104.2K) *
  Poured from bottle on 2016-06-21 at 12:19:18
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/netcat.rb

我只是想让 netcat 响应传入的 curl 请求,但我认为我遇到的问题是 netcat 不知道何时响应.

这里是希望回传的内容,保存在response.txt:

HTTP/1.1 200 OK

这是在一个终端中 运行 的 netcat 命令 shell:

sudo nc -l -p 80 < response.txt 

这是在另一个终端 运行 中的 curl 命令 shell:

curl 127.0.0.1:80

有人可以帮助我了解我需要做什么才能使它按预期工作。

我可以通过使用 netcat 而不是 curl 进行连接来实现这一点,但理想情况下我希望非 netcat 客户端(例如 curl 或网络浏览器)与 localhost:80 并让 netcat 的第一个实例响应。

谢谢。

尝试使用 macOS netcat 而不是自制软件,并删除 -p 选项:

sudo /usr/bin/nc -l 80 < response.txt

请记住在 "response.txt"

中包含完整的请求详细信息(响应、Headers 等)