最近研究HTTP协议的一个大坑

SkylakeWebServer是一个Python编写的WebServer,在目前这个版本(V0.1 Alpha1)中仅做支持基本的静态文件服务器,CGI和对接Python APP功能将会在下面的几个Alpha版本中逐渐添加。

2017-02-02 Update: CGI功能已添加并已通过测试。


源码目前没有任何注释,也可(ken)能(ding)存在各种不稳定/奇怪的bug,仅供研究使用(虽然估计没有比我更蠢的socket写法)。由于研究这个源码导致对Socket或HTTP的误解本人不负任何责任。

特性:

  1. Unix下非阻塞,子进程结束自动回收不会产生僵尸进程。

  2. 支持Last-Modified,Range等header,可以实现断点续传,多线程下载等。

  3. 支持目录列表,具有../等跨目录尝试的防御功能。

已知问题:

  1. 由于辣鸡M$用的Windows-1251编码,Windows下列目录会有中文乱码问题。

  2. 请求大文件会炸内存,由于尝试一次性读取整个文件导致。


在线演示: http://skylake.eof.moe/

GitHub地址: https://github.com/kochiyasanae1/skylake

Coding地址: https://coding.net/u/patchouli/p/Skylake/git