欢迎访问宙启技术站
智能推送

使用Python的serve()方法搭建HTTP服务器

发布时间:2023-12-23 05:59:49

在Python中,你可以使用内置的http.server模块来搭建一个简单的HTTP服务器。其中,http.server提供了一个叫做HTTPServer的类,它可以作为一个服务器对象,通过调用它的serve_forever()方法来启动服务器并接收客户端请求。下面是一个简单的例子:

from http.server import HTTPServer, BaseHTTPRequestHandler

# 自定义请求处理类,继承自BaseHTTPRequestHandler
class MyHandler(BaseHTTPRequestHandler):
    # GET请求的处理方法
    def do_GET(self):
        self.send_response(200)  # 返回响应码200表示成功
        self.send_header('Content-type', 'text/html')  # 设置响应头,指定返回的内容类型为html
        self.end_headers()
        self.wfile.write(b'Hello, World!')  # 返回响应内容

if __name__ == '__main__':
    # 创建HTTP Server对象,绑定本地地址和端口
    server = HTTPServer(('localhost', 8000), MyHandler)
    print('Starting server, use <Ctrl-C> to stop')
    server.serve_forever()  # 启动服务器

在上面的代码中,首先导入了HTTPServerBaseHTTPRequestHandler,然后定义了一个自定义的请求处理类MyHandler,继承自BaseHTTPRequestHandlerdo_GET方法是处理GET请求的方法,我们在里面设置了响应码200、响应头和响应内容。

main函数中,创建了一个HTTPServer对象,指定了服务器的地址和端口,并将自定义请求处理类传递给HTTPServer。然后启动服务器并一直监听来自客户端的请求。

可以通过运行上述脚本来启动服务器,并在浏览器中访问http://localhost:8000/,会显示"Hello, World!"。

这只是一个简单的例子,你可以在自定义的请求处理类中定义更多的方法来处理不同的请求,比如do_POST来处理POST请求、do_PUT来处理PUT请求等。

此外,http.server模块还提供了一些其他的类和函数,可以用来处理更复杂的HTTP请求和响应,例如SimpleHTTPRequestHandler类提供了更完整的请求处理功能,可以处理静态文件的请求。