pyHttpd——socket实现的web服务器
关于
学习计算机网络时,为了更好理解网络协议,使用socket套接字开发的简单的 web 服务器。旨在更好的理解Http工作流程和学习使用网络编程。
开发依赖
pyHttpd基于Python2 开发,使用原始socket套接字,除了多线程模块(threading),系统模块(os)等几个必需内置模块外,没有使用任何其他第三方依赖库。只要安装有Python环境,在任何平台都能稳定运行。
如何使用
- 从github上克隆到本地
$ git clone https://github.com/Insh3ll/pyhttpd.git
- 进入pyhttpd目录
$ cd pyhttpd
- 执行pyhttpd.py
$ python pyhttd.py
看到如下提示说明执行成功,Http服务器处于监听状态等待连接
文件解读
目录树
pyhttpd
├── config.py
├── core.py
├── protocol.py
├── pyhttpd.py
├── serverInfo.py
└── train
- config.py
pyhttpd 启动时读取的配置文件,包括监听的IP和Port、web主目录、web默认文档、日志路径等
- core.py
pyhttpd 核心文件,将Http协议的逻辑实现封装在Httpd类中,具体包括监听和响应客户端的请求等
- protocol.py
pyhttpd 协议解析类,负责解析HTTP协议中的相关参数,被核心文件core.py调用
- serverInfo.py
pyhttpd 响应中返回的服务器信息处理方法,包括HTTP状态码解析和服务信息的输出。
- ** pyhttpd.py **
pyhttpd 的执行文件,引入core.py模块,生成Httpd类对象并启动