下面是一个使用 Python 内置库 http.server
的简单 HTTP 服务器实现。不需要安装任何第三方库,非常适合做演示或开发测试用。
from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
# 设置响应状态码
self.send_response(200)
# 设置响应头
self.send_header('Content-type', 'text/html; charset=utf-8')
self.end_headers()
# 响应内容
self.wfile.write(b"<h1>Hello, World! This is a simple HTTP server.</h1>")
if __name__ == '__main__':
# 监听 127.0.0.1:8080
server_address = ('', 8080)
httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)
print("Server started on http://127.0.0.1:8080")
httpd.serve_forever()
使用方法:
- 保存为
server.py
- 运行:
python server.py
- 打开浏览器访问:http://127.0.0.1:8080
你可以根据需要扩展 do_POST
、do_PUT
等方法,实现更多 HTTP 功能。
下面提供一个功能更丰富的 HTTP server 实现示例,采用流行的第三方库 Flask
(适合实际开发),实现以下功能:
- 支持 GET、POST 方法。
- 路由分发支持路径参数。
- JSON 数据的接收与响应。
- 提供 404 错误处理。
如果你需要其它框架(如 FastAPI)、或更复杂的功能可以继续说明。
一、安装 Flask
首先请确保已安装 Flask:
pip install flask
二、示例代码
from flask import Flask, request, jsonify, abort
app = Flask(__name__)
# 首页
@app.route("/")
def index():
return "<h1>Welcome to the complex Flask HTTP Server!</h1>"
# 带参数的路由
@app.route("/hello/<name>")
def hello(name):
return f"<h2>Hello, {name}!</h2>"
# 处理 GET 和 POST 请求
@app.route("/echo", methods=["GET", "POST"])
def echo():
if request.method == "GET":
msg = request.args.get('msg', 'Nothing received')
return jsonify({'method': 'GET', 'msg': msg})
elif request.method == "POST":
data = request.json
return jsonify({'method': 'POST', 'data': data})
# 404 错误处理
@app.errorhandler(404)
def page_not_found(e):
return jsonify({'error': 'Not Found'}), 404
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8888, debug=True)
三、使用说明
运行:
python server.py
测试各接口:
- 访问 http://localhost:8888/
- 访问 http://localhost:8888/hello/Alice
- GET 请求:http://localhost:8888/echo?msg=hello
- POST 请求:
curl -X POST -H "Content-Type: application/json" -d '{"test": 123}' http://localhost:8888/echo
访问未定义的路径,返回 404。