Menu
CoddyTech

编写响应

Coddy 使用终端进行网络通信 课程的第 24 课,共 47 课。

你已经读过很多响应了。现在,写一个响应吧。

nc -l 会监听一个端口,你输入的任何内容都会发送给第一个连接的客户端。这样一来,你就是服务器,而且完全不需要 Web 服务器:

printf 'HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nhand written' | nc -l -p 9114 &

看看这是什么:状态行、一个标头、一个空行,然后是正文。这正是你一直在读取的结构,只不过是手动输入的。

现在,任何支持 HTTP 的程序都会接受它。让 curl 连接到这个端口,它会返回一个完全普通的 200 响应,正文是 text/plain,因为 Web 服务器做的始终就是这件事:按这种格式写入文本。

这个技巧在工作中确实很有用。当你需要查看某个东西发送给你的内容时,可以在它的路径上放一个 nc -l,然后读取它发出的请求。

challenge icon

挑战

专家

手动充当服务器。

在端口 9114 上使用 nc -l,提供一个响应,其状态行是 HTTP/1.1 200 OK,包含 Content-Type: text/plain 标头,正文内容必须恰好是 hand written。然后用 curl 获取响应并打印正文。

预期输出:

hand written

使用 printf 和 \r\n 作为行结束符,并记得在正文前留一个空行。

亲手试试

终端
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

使用终端进行网络通信中的所有课

自己练习: Terminal 在线编辑器