什么是Python的http.server(或SimpleHTTPServer)更快的select?
Python的http.server (或者SimpleHTTPServer for Python 2)是从命令行提供当前目录内容的好方法:
python -m http.server
但是,就networking服务器而言,这是非常slooooow …
它的行为就像单线程一样,使用RequireJS加载JavaScript AMD模块时偶尔会导致超时错误。 加载没有图像的简单页面可能需要5到10秒钟的时间。
什么是更方便快捷的select?
node.js的http-server非常方便,比Python的SimpleHTTPServer快很多。 这主要是因为它使用asynchronousIO来并发处理请求,而不是串行化请求。
安装
如果你还没有安装node.js。 然后使用节点包pipe理器( npm
)安装包,使用-g
选项全局安装。 如果你在Windows上,你将需要一个pipe理员权限的提示,在Linux / OSX上,你需要sudo
命令:
npm install http-server -g
这将下载任何所需的依赖关系并安装http-server
。
使用
现在,从任何目录,你可以input:
http-server [path] [options]
path是可选的,如果它存在,则默认为./public
,否则./
。
选项是[默认]:
-
-p
要监听的端口号[8080] -
-a
绑定到[localhost]的主机地址 -
-i
显示目录索引页面[真] -
-s
或--silent
无提示模式将不会login到控制台 -
-h
或--help
显示帮助消息并退出
因此,要在端口8000上提供当前目录,请input:
http-server -p 8000
我推荐: Twisted ( http://twistedmatrix.com )
一个事件驱动的networking引擎,用Python编写,并以开放源代码的MIT许可证授权。
这是跨平台,并预装在OS X自10.5以来。 除此之外,您可以使用以下命令在当前目录中启动一个简单的Web服务器:
twistd -no web --path=.
细节
选项说明(详见twistd --help
):
-n, --nodaemon don't daemonize, don't use default umask of 0077 -o, --no_save do not save state on shutdown
“web”是一个在Twistedasynchronous引擎之上运行简单Web服务器的命令。 它也接受命令行选项(在“web”命令之后 – 请参阅twistd web --help
以获取更多信息):
--path= <path> is either a specific file or a directory to be set as the root of the web server. Use this if you have a directory full of HTML, cgi, php3, epy, or rpy files or any other files that you want to be served up raw.
还有一堆其他命令,如:
conch A Conch SSH service. dns A domain name server. ftp An FTP server. inetd An inetd(8) replacement. mail An email service ... etc
安装
Ubuntu的
sudo apt-get install python-twisted-web (or python-twisted for the full engine)
Mac OS-X(从10.5开始预装,或在Macports中可用)
sudo port install py-twisted
视窗
installer available for download at http://twistedmatrix.com/
HTTPS
扭曲也可以利用安全证书来encryption连接。 将此与现有的--path
和--port
(用于普通的HTTP)选项一起使用。
twistd -no web -c cert.pem -k privkey.pem --https=4433
去 1.0包括一个http服务器和util用于提供几行代码的文件。
package main import ( "fmt"; "log"; "net/http" ) func main() { fmt.Println("Serving files in the current directory on port 8080") http.Handle("/", http.FileServer(http.Dir("."))) err := http.ListenAndServe(":8080", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } }
使用go run myserver.go
运行这个源代码,或者构build一个可执行文件go build myserver.go
尝试webfs ,它是微小的,不依赖于像安装node.js或python平台。
如果使用Mercurial,则可以使用内置的HTTP服务器。 在你想要提供的文件夹中:
hg serve
从文档 :
export the repository via HTTP Start a local HTTP repository browser and pull server. By default, the server logs accesses to stdout and errors to stderr. Use the "-A" and "-E" options to log to files. options: -A --accesslog name of access log file to write to -d --daemon run server in background --daemon-pipefds used internally by daemon mode -E --errorlog name of error log file to write to -p --port port to listen on (default: 8000) -a --address address to listen on (default: all interfaces) --prefix prefix path to serve from (default: server root) -n --name name to show in web pages (default: working dir) --webdir-conf name of the webdir config file (serve more than one repo) --pid-file name of file to write process ID to --stdio for remote clients -t --templates web templates to use --style template style to use -6 --ipv6 use IPv6 in addition to IPv4 --certificate SSL certificate file use "hg -v help serve" to show global options
这是另一个。 这是一个Chrome扩展
安装完成后,您可以在Chrome中创build一个新标签并点击左上angular附近的应用button来运行该标签
它有一个简单的gui。 点击select文件夹,然后点击http://127.0.0.1:8887
链接
给polpetta一个尝试…
npm install -g polpetta
那么你可以
polpetta〜/文件夹
你准备好去了:-)
另外考虑devd写一个小的webserver。 许多平台的二进制文件在这里可用。
devd -ol path/to/files/to/serve
它体积小,速度快,并提供了一些有趣的可选function,例如在文件更改时实时重新加载。
我发现python -m http.server
不可靠 – 有些响应需要几秒钟。
现在我使用一个名为Ran https://github.com/m3ng9i/ran的服务器;
Ran:用Go编写的一个简单的静态Web服务器
使用Servez作为服务器
- 下载Servez
- 安装它,运行它
- select要服务的文件夹
- select“开始”
- 转到
http://localhost:8080
或select“启动浏览器”
注意:由于Chrome浏览器正在取消对应用程序的支持,因此Chrome的Chrome浏览器正在消失。