使用Python中的server()函数创建基于HTTP协议的简单Web服务器的示例
发布时间:2023-12-18 18:52:58
Python中的http.server模块提供了一个简单的Web服务器,可以用来处理HTTP请求并返回响应。下面是一个基于HTTP协议的简单Web服务器的示例代码:
from http.server import HTTPServer, BaseHTTPRequestHandler
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(b"<h1>Hello, World!</h1>")
def do_POST(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(b"<h1>POST request received!</h1>")
def run(server_class=HTTPServer, handler_class=RequestHandler, port=8000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f"Starting server on port {port}...")
httpd.serve_forever()
if __name__ == '__main__':
run()
这个示例中的RequestHandler继承自BaseHTTPRequestHandler,它用于处理HTTP请求并返回响应。在这个示例中,我们定义了两个处理方法:do_GET和do_POST。在do_GET方法中,我们发送一个包含Hello, World!的标题为h1的HTML响应。在do_POST方法中,我们发送一个标题为POST request received!的HTML响应。
run函数用于启动Web服务器。它接受三个参数:server_class默认为HTTPServer,handler_class默认为我们定义的RequestHandler,port默认为8000。在run函数中,我们创建了HTTPServer实例,并传入服务器地址和处理程序类。然后,我们调用serve_forever方法来启动服务器并开始处理请求。
要运行这个示例,将代码保存为server.py(或其他任何名称),然后在终端中运行python server.py。服务器将在本地监听端口8000上。您可以在浏览器中访问http://localhost:8000来查看响应。
如果您发送POST请求到服务器,可以使用工具(例如:curl或Postman)模拟。例如,使用curl发送POST请求的命令是:curl -X POST http://localhost:8000。
这只是一个简单的示例,您可以根据需要进行扩展和修改。例如,您可以根据URL路径执行不同的操作,处理表单数据,从数据库中检索数据等等。
