如何用Python实现一个简单的Web服务器
这里我们将使用Python的BaseHTTPServer模块来实现一个简单的Web服务器。
首先,我们需要创建一个类继承自BaseHTTPRequestHandler,该类中将重写一些BaseHTTPRequestHandler的方法,来实现我们自己的逻辑。
接下来我们就可以创建一个HTTPServer来监听我们指定的端口,当有请求到达时,就交给我们创建的类来处理。
import BaseHTTPServer class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write("Hello World!") def main(): try: server = BaseHTTPServer.HTTPServer(('', 8080), MyHandler) print 'started httpserver...' server.serve_forever() except KeyboardInterrupt: print '^C received, shutting down server' server.socket.close() if name == 'main': main()
这里我们监听的是8080端口,当有请求到达时,就交给我们的MyHandler类来处理。
MyHandler类中实现了一个do_GET方法,该方法的作用就是对GET请求的响应。首先,我们调用send_response方法来发送一个状态码。接下来,我们调用send_header方法来发送一个header,Content-type表示发送的内容的类型。最后,我们调用end_headers方法来表明header的发送结束。
接下来,我们可以通过self.wfile来向客户端发送数据。
当然,你也可以根据需要重写其它方法,比如do_POST等。
最后,我们通过if name == 'main':来判断是否是直接运行该文件,如果是就执行main方法来启动我们的Web服务器。
运行上面的代码,我们就可以在浏览器中通过http://127.0.0.1:8080访问到我们的Web服务器了。