---
title: "simplehttpserver增强版"
url: "https://lerry.me/post/2012/02/a-enhanced-version-of-simplehttpserver"
date: 2012-02-12T09:02:00.000Z
updated: 2026-08-31T10:29:18.240Z
tags:
  - "Python"
language: zh-CN
---

# simplehttpserver增强版

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

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

可从[这里](https://github.com/lerry/httpserver)获得源代码，[](https://github.com/lerry)[https://github.com/lerry/httpserver](https://github.com/lerry/httpserver)

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

[](https://github.com/lerry)
