「SimpleHTTPServer」用Python开启简易HTTP服务

3,166次阅读

共计 1131 个字符,预计需要花费 3 分钟才能阅读完成。

如果你急需一个简单的 Web Server,但你又不想去下载并安装那些复杂的 HTTP 服务程序,比如:Apache,ISS 等。那么,Python 可能帮助你。使用 Python 可以完成一个简单的内建 HTTP 服务器。于是,你可以把你的目录和文件都以 HTTP 的方式展示出来。佻只需要干一件事情,那就是安装一个 Python。

实际上来说,这是一个可以用来共享文件的非常有用的方式。实现一个微型的 HTTP 服务程序来说是很简单的事情,在 Python 下,只需要一个命令行。下面是这个命令行:(假设我们需要共享我们的目录 /home/site 而 IP 地址是 192.168.1.1)
[code lang="bash"]
cd /home/site
python -m SimpleHTTPServer
[/code]

这就行了,而我们的 HTTP 服务在 8000 号端口上侦听。你会得到下面的信息:

Serving HTTP on 0.0.0.0 port 8000 …

你可以打开你的浏览器,然后输入下面的 URL:

http://192.168.1.1:8000

如果你的目录下有一个叫「index.html」的文件名的文件,那么这个文件就会成为一个默认页,如果没有这个文件,那么,目录列表就会显示出来。

如果你想改变端口号,你可以使用如下的命令:
[code lang="bash"]
python -m SimpleHTTPServer 8080
[/code]

如果你只想让这个 HTTP 服务器服务于本地环境,那么,你需要定制一下你的 Python 的程序,下面是一个示例:
[code lang="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()
[/code]

注:所有的这些都可以在 OS X 或者 Windows 下工作。

全文完
 
西西
📝创作说明:本文由 西西 于2013-09-27发表,共计1131字。
🉑转载说明:本作品采用 “知识共享署名-非商业性使用 4.0 国际许可协议” 进行许可。除特殊说明外,您可以自由的转载和修改,但请务必注明来源且不可用于商业目的。