使用BaseHTTPServer实现HTTP重定向
发布时间:2023-12-25 10:35:12
BaseHTTPServer是Python内置的HTTP服务器模块,提供了一个简单的HTTP服务器类BaseHTTPRequestHandler,可以用来处理HTTP请求和响应。下面是一个使用BaseHTTPServer实现HTTP重定向的示例代码:
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class RedirectHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(301)
self.send_header('Location', 'http://www.example.com')
self.end_headers()
if __name__ == '__main__':
server_address = ('', 8000)
httpd = HTTPServer(server_address, RedirectHandler)
print('Server running on port 8000...')
httpd.serve_forever()
上述代码实现了一个HTTP重定向的服务器,当收到GET请求时,会返回一个301状态码以及重定向的目标URL。在上述示例中,重定向的目标URL为http://www.example.com。
使用示例:
1. 将以上代码保存为redirect_server.py。
2. 打开终端,切换到保存代码的目录,并运行以下命令启动服务器:
python redirect_server.py
3. 服务器启动后,可以在浏览器地址栏中输入http://localhost:8000,即可发送GET请求给服务器。
4. 服务器收到请求后,会返回一个301状态码以及重定向的目标URL。
5. 浏览器会自动根据Location头中的URL进行重定向,打开http://www.example.com。
这个例子中只实现了简单的重定向功能,并没有进行具体的业务处理。可以根据实际需要,对BaseHTTPRequestHandler类进行扩展,处理更复杂的业务逻辑。例如,可以在do_GET方法中根据请求路径或参数进行不同的重定向操作。
