通过python内置的http.server模块,可以快速的启动一个web服务,方便查看一些静态页面。命令如下:

python3 -m http.server [--cgi] [--bind ADDRESS] [--directory DIRECTORY] [port [default: 8000]]

示例 1:使用默认设置启动服务器

默认情况下,http.server 会在当前目录下启动一个 HTTP 服务器,监听端口 8000,并允许从所有网络接口访问。

python3 -m http.server

访问方式:

  • 打开浏览器,访问 http://localhost:8000,即可查看当前目录中的文件。


示例 2:指定端口号

如果你想使用其他端口(例如 8080),可以通过以下方式启动服务器:

python3 -m http.server 8080

访问方式:

  • 打开浏览器,访问 http://localhost:8080


示例 3:绑定到特定 IP 地址

默认情况下,http.server 监听所有网络接口(即 0.0.0.0)。如果你只想让服务器绑定到特定的 IP 地址,可以使用 --bind 参数。

例如,绑定到本地回环地址 127.0.0.1

python3 -m http.server --bind 127.0.0.1 8000

访问方式:

  • 只能通过 http://127.0.0.1:8000 访问,无法通过其他网络接口访问。


示例 4:指定目录

默认情况下,http.server 会提供当前工作目录中的文件。如果你需要指定其他目录,可以使用 --directory 参数。

例如,指定 /path/to/your/directory 作为服务器的根目录:

python3 -m http.server --directory /path/to/your/directory 8000

访问方式:

  • 打开浏览器,访问 http://localhost:8000,即可查看指定目录中的文件。


示例 5:启用 CGI 支持

如果你需要运行 CGI 脚本,可以使用 --cgi 参数。这将允许服务器执行 CGI 脚本(如 Python、Perl 等)。

例如,启动一个支持 CGI 的服务器:

python3 -m http.server --cgi 8000

假设你在当前目录下有一个 CGI 脚本 hello.py

#!/usr/bin/env python3
print("Content-Type: text/html")
print()
print("<h1>Hello, CGI!</h1>")

访问方式:

  • hello.py 放在当前目录下,确保其具有可执行权限(chmod +x hello.py)。

  • 打开浏览器,访问 http://localhost:8000/hello.py,即可看到 CGI 脚本的输出。


示例 6:综合使用

你可以将多个参数组合在一起,例如:

python3 -m http.server --bind 127.0.0.1 --directory /path/to/your/directory --cgi 8080

这将:

  1. 绑定到本地回环地址 127.0.0.1

  2. 提供 /path/to/your/directory 目录中的文件。

  3. 启用 CGI 支持。

  4. 监听端口 8080

访问方式:

  • 打开浏览器,访问 http://127.0.0.1:8080