技术提示:使用 Python 的超简单 HTTP 服务器

如果您需要快速运行一个 Web 服务器,并且不想麻烦地设置 Apache 或类似的东西,那么 Python 可以帮到您。Python 自带一个简单的内置 HTTP 服务器。借助这个小小的 HTTP 服务器,您可以将系统中的任何目录变成您的 Web 服务器目录。您只需要安装 Python。

实际上,这对于在本地网络中共享文件非常有用。实现这个小巧但非常有用的 HTTP 服务器非常简单,只需一行命令即可。

假设我想共享目录/home/hisam并且我的 IP 地址是 192.168.1.2

打开终端并输入

$ cd /home/somedir
$ python -m SimpleHTTPServer

就是这样!现在您的 HTTP 服务器将在 8000 端口启动。您将收到以下消息

Serving HTTP on 0.0.0.0 port 8000 ...

现在打开浏览器并输入以下地址

http://192.168.1.2:8000

您也可以通过以下方式访问它

http://127.0.0.1:8000

如果该目录有一个名为index.html的文件,则该文件将作为初始文件提供。如果没有index.html,则将列出目录中的文件。

如果您想更改使用的端口,请通过以下方式启动程序

$ python -m SimpleHTTPServer 8080

如果您只想在 localhost 上提供服务,您需要编写一个自定义 Python 程序,例如

import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler


HandlerClass = SimpleHTTPRequestHandler
ServerClass  = BaseHTTPServer.HTTPServer
Protocol     = "HTTP/1.0"

if sys.argv[1:]:
    port = int(sys.argv[1])
else:
    port = 8000
server_address = ('127.0.0.1', port)

HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)

sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()

另请注意,这也应该在 Windows 或 Cygwin 上工作。

加载 Disqus 评论