Python实现Http Server及Https Server

目录

一、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",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值