http.server のみというか、標準添付モジュールだけで動くやつ。GET/POST リクエストの内容を dump する(呼び出し元にも echo する)。
本当にただ HTTP サーバを立てたいだけなら python3 -m http.server
で事足りるが、これだとリクエストの中身を覗けないのでハンドラを自前で書く必要がある。
http.server のドキュメントだけでは実装しきれない気がする。do_XXX()
をオーバーライドするだけでなく send_response()
と end_headers()
を呼び出さないといけない、とか。
Ctrl-C で停止しても数秒くらい OSError: [Errno 48] Address already in use
が出て再起動できなくなるのが玉に瑕。lsof
てみてもプロセスはいなかったりして、うまく対処できない。
2021/10/13 追記: コメント欄で allow_reuse_address を True にすれば解決すると教えてもらいました。