最近开始学习python编程,今天看到实现一个简单的Web服务器,就将所学的知识与遇到的问题记录于此。
要建立一个Web服务器,必须建立一个基本的服务器和一个”处理程序“,处理程序是一些处理主要“Web服务”的简单软件。它用于处理客户端请求,并返回适当的文件,包括静态文件和动态文件。
处理程序的复杂性决定了web服务器的复杂程度。python标准库提供了3种不同的处理程序:
1.BaseHTTPRequestHandler,它可以在BaseHTTPServer模块中找到。除了获得客户端请求外,没有实现其他的处理工作,因此必须自己完成其他的任务处理。
2.SimpleHTTPServer模块中的SimpleHTTPRequestHandler,它建立在BaseHTTPRequestHandler的基础上,可以实现标准的GET和HEAD请求
3.CGIHTTPServer模块中的CGIHTTPRequestHandler处理程序,这个处理程序可以获取SimpleHTTPRequestHandler,并添加了对POST请求的支持。可以调用CGI脚本完成请求处理过程,也可以将声称的HTML脚本返回给客户端。
接下来展示如何使用BaseHTTPRequestHandler来实现对客户端GET请求的处理
开始运行程序,输入命令python src/myhttpd.py,发现程序报如下错误,
上网查了相关资料,见有人说在unix环境下,小于1024的端口不能被普通用户绑定,只能由有root权限的用户来进行绑定,可是使用sudo命令也并不起作用,所以需要绑定一个大于1024的端口,最终问题得到解决。