simplehttpserver增强版

最近,由于需要,完成了这个增强版的SimpleHTTPServer。其实很早就想弄了,最近用到才真正弄好。说是增强版,到底强在哪里呢?

  • 支持断点续传,这是我最需要的特性,支持三种形式,经测试和nginx的解析结果是一样的,这里借鉴了bottle的代码。
    bytes=-100    最后100字节
    bytes=100-    从第100字节到最后
    bytes=100-200  常见的形式,从第100字节到第200字节
  • 支持自定义文档目录,不必是当前路径。
  • 细分了文件不可访问的状态404,403等。
  • 增加对if-modified-since的支持,使得部分客户端(如浏览器)可不用重复下载已缓存的无变化的文件。

可从这里获得源代码,https://github.com/lerry/httpserver

虽然代码中新增加的特性是从别的地方借鉴了,由于SimpleHTTPServer和bottle的实现大不相同,改起来还是费了不少力气的,嘿嘿,希望能发挥作用。编写的过程中,查阅了不少文档,从中学到了不少HTTP协议的知识。也发现,这些网络基础知识如果知道的话,写起程序来能省不少力气,不然很多问题就不知道原因在哪里了。