写一个简易的 HTTP Server

背景

「全大写不好看以下 HTTP 用 http 代替…」

Python 中有一个很多人在做调试或者其他娱乐的时候常用的命令 python -m SimpleHTTPServer,它会默认在 8000 端口
打开一个 HTTP 服务器,能做很多事情,比如 serve 常见类型的静态文件(img, css, js),或者还能在内网传文件,电脑开 server,
然后用手机访问电脑的 ip 地址 + 对应端口的 url,去下载我想要的图片,要比插 usb 快…

Node.js 当然也有很多常见的 http 服务器 cli 工具,比如http-server

http 是封装在 socket 之上的,每次请求是一个 socket 短连接,发送特定格式的 TCP 报文(request),
解析处理并返回特定格式的 TCP 报文(response),就完成了一个 http 请求以及响应

# request
GET / HTTP/1.1

# response
HTTP/1.1 200 OK
Hello, World!

以上是一个非常简单的 http 请求响应,我们只要用 socket 发送 http 协议规定的格式就可以完成简单的交互

但犹由于 node 是自实现的 http 服务,我们对从 socket 到 http 的这个包装阶段并不了解,所以我们选择 python 来实现

Pottery

pottery

我参照 SimpleHTTPServer 写了一个简单的 http server,因为是重新造轮子,所以起名叫 pottery

有兴趣可以看一下,他只提供了一个思路。因为刚开头,所以具体的对每个 http method 的响应并没有做完