目录

一、Python实现Http Server

1、实现Http Server

2、通过浏览器测试Http Server

3、通过Python实现客户端测试Http Server

二、Python实现Https Server

1、利用HTTPServer实现一个简单的Https Server

2、SSL生成证书及密码


一、Python实现Http Server

1、实现Http Server

在Python中,可以很容易地创建一个简单的HTTP服务器来服务于静态文件或执行一些基本的HTTP请求处理。这通常通过http.server(在Python 3.x中))模块来完成。

虽然http.server模块提供了一个方便的方式来快速启动一个HTTP服务器,但如果需要更复杂的请求处理或动态生成内容,需要编写一个自定义的HTTP服务器。

首先,确保你正在使用Python 3.x版本。然后继承BaseHTTPRequestHandler类,自定义RequestHandler类,实现一个简单的Http Server,以线程方式启动Server,响应GET和POST请求。解析请求中的参数并回复。HTTP服务器监听的端口号。如果不指定,它将默认为80。

以下是一个使用Python 3.x创建HTTP服务器的例子。


from http.server import BaseHTTPRequestHandler, HTTPServer
from socketserver  import ThreadingMixIn
import ssl
import sys, os
from urllib import parse
from urllib import request

class RequestHandler(BaseHTTPRequestHandler):
    
    def do_POST(self):
        datas = self.rfile.read(int(self.headers['content-length']))
        param = datas.decode('utf-8')
        self.send_content(param.encode('utf-8'),200)

    def do_GET(self):
        self.full_path = os.getcwd() + self.path
        param = dict(parse.parse_qsl(self.full_path))
        if 'mypara' in param.keys():
            self.send_content(param['mypara'].encode('utf-8'),200)
        else:
            msg = '<xml><meta charset="UTF-8">Hello World </xml>'
            self.send_content(msg.encode('utf-8'),200)
        
    def send_content(self, page, status=200):
        self.send_response(status)
        self.send_header("Content-type",

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部