Skip to content

billzi2016/http-server-from--scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

HTTP Server From Scratch

这是一个基于 Jupyter Notebook 进行实现的 HTTP Server 项目。

项目目标是在尽量不依赖高级框架的前提下,使用 Python 标准库和底层网络能力,从零构建一个最小但结构完整的 HTTP 服务。整个项目的核心交付形式是 ipynb,而不是常规 Web 框架工程。

项目目标

  • 基于 socket 构建最小 HTTP Server
  • 手动处理连接、请求读取、请求解析和响应返回
  • 支持基础路由分发
  • 支持简单文本与 HTML 响应
  • 支持本地静态文件访问
  • 在 Notebook 中保留完整的实现过程和验证路径

技术边界

本项目遵循 from scratch 原则,强调从底层构建 HTTP 服务。

使用范围:

  • Python
  • Jupyter Notebook
  • Python 标准库
  • socket
  • pathlib / os
  • mimetypes
  • urllib.parse

不作为核心方案使用:

  • Flask
  • FastAPI
  • Django
  • aiohttp
  • Tornado
  • 任何现成高层 HTTP 服务框架

交付形式

项目的核心实现将放在一个主 ipynb 文件中,Notebook 既是实现载体,也是运行说明和验证载体。

后续 Notebook 预期覆盖:

  • 服务配置
  • socket 监听
  • 原始请求读取
  • 请求行与请求头解析
  • 响应报文构建
  • 路由处理
  • 静态文件处理
  • 错误响应与基础日志

当前状态

当前仓库已包含:

  • prd.md:完整项目规划书

当前仓库尚未包含:

  • ipynb 实现文件
  • 静态资源示例文件
  • 运行验证截图或示例输出

后续计划

下一步将基于 PRD 实现主 Notebook,按照以下顺序推进:

  1. 建立最小 socket 服务闭环
  2. 加入 HTTP 请求解析
  3. 加入基础路由
  4. 加入静态文件服务
  5. 完善错误处理与运行说明

文档说明

如果需要查看完整的项目范围、模块拆解、阶段计划和验收标准,请直接阅读 prd.md

About

Notebook-based HTTP server implementation from first principles, using Python sockets and standard-library networking without heavyweight frameworks.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors