📜  python http 服务器 - Python (1)

📅  最后修改于: 2023-12-03 15:18:55.758000             🧑  作者: Mango

Python HTTP 服务器

Python 是一种流行的编程语言,具有广泛的应用领域,其中一个应用就是作为 HTTP 服务器。Python 的内置模块 http.server 提供了一个基本的 HTTP 服务器实现,允许您通过浏览器访问您的本地文件系统、运行 python 脚本等功能。除了内置模块之外,还有很多第三方模块可以用于构建全功能的 HTTP 服务器,如 Flask,Django 等。下面,我们将介绍如何使用 http.server 启动一个简单的 HTTP 服务器。

安装 Python

要启动 Python HTTP 服务器,您必须拥有 Python 环境。请前往 Python 官网 下载并安装最新版本的 Python。

启动 HTTP 服务器

以下是使用 http.server 模块启动基本的 HTTP 服务器的示例代码:

import http.server
import socketserver

PORT = 8080 # 选择一个可用的端口
Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("服务器已启动:http://localhost:{}/".format(PORT))
    httpd.serve_forever()

将上面的代码保存为 .py 文件并运行,你将看到类似以下的输出:

服务器已启动:http://localhost:8080/

现在,您可以使用您喜爱的 Web 浏览器访问 http://localhost:8080/ 并浏览您的文件系统了。

启用 HTTPS

如果您需要启用 HTTPS 支持,可以使用 ssl 模块并在 TCPServer 构造函数中传递 SSL 上下文。以下代码演示如何启用 HTTPS。

import http.server
import ssl
import socketserver

PORT = 8443 
Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("服务器已启动:https://localhost:{}/".format(PORT))
    httpd.socket = ssl.wrap_socket(httpd.socket, server_side=True,
                                   certfile="cert.pem", keyfile="key.pem")
    httpd.serve_forever()

请注意,您需要从任何可信的 CA 或自己构建的证书颁发机构处获得有效的 SSL 证书和密钥文件 (cert.pemkey.pem)。

结论

在本教程中,我们使用 Python 的内置模块 http.server 启动了一个基本的 HTTP 服务器。您还学习了如何使用 SSL 在服务器上启用 HTTPS。Python HTTP 服务器是一个强大的工具,可以用于多种用途,如测试应用程序等。