使用Python的BaseHTTPServer.BaseHTTPRequestHandler创建简单的HTTP服务器
发布时间:2024-01-16 05:29:08
BaseHTTPServer是Python中的一个模块,用于创建基本的HTTP服务器。BaseHTTPRequestHandler是一个类,是用来处理HTTP请求的。下面是一个使用BaseHTTPServer创建简单HTTP服务器的示例:
import BaseHTTPServer
class MyHttpRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
"""处理GET请求"""
self.send_response(200) # 返回HTTP状态码200(表示成功)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write('Hello, world!'.encode()) # 返回响应内容
def run(server_class=BaseHTTPServer.HTTPServer, handler_class=MyHttpRequestHandler, port=8000):
"""启动HTTP服务器"""
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print('Starting server at http://localhost:{}/'.format(port))
httpd.serve_forever()
if __name__ == '__main__':
run()
在这个例子中,我们创建了一个名为MyHttpRequestHandler的子类,继承自BaseHTTPRequestHandler类。我们重写了do_GET方法来处理GET请求。在该方法中,我们首先发送响应头部,然后发送响应内容。在本例中,我们简单地返回一个包含"Hello, world!"的HTML页面。
另外,我们定义了名为run的函数,用于启动HTTP服务器。在这个函数中,我们创建了一个HTTPServer实例,并传入服务器地址和自定义的请求处理类。最后,我们通过调用serve_forever方法来启动服务器。
要运行这个程序,只需在命令行中执行python文件名.py,然后在浏览器中访问http://localhost:8000/即可看到"Hello, world!"。
这个例子简单地演示了如何使用BaseHTTPServer.BaseHTTPRequestHandler创建一个最基本的HTTP服务器。当然,您可以根据需求进一步扩展和定制请求处理类,以满足不同的应用场景。
