什么是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 

我推荐: Twistedhttp://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链接

在这里输入图像描述

https://www.youtube.com/watch?v=AK6swHiPtew

给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作为服务器

  1. 下载Servez
  2. 安装它,运行它
  3. select要服务的文件夹
  4. select“开始”
  5. 转到http://localhost:8080或select“启动浏览器”

servez

注意:由于Chrome浏览器正在取消对应用程序的支持,因此Chrome的Chrome浏览器正在消失。