5 ms·
Http-server, a simple zero-configuration command line http server
- naughtysriram 15y agohey people, check out Lightnode http://www.ngspinners.com/lightnode/ http://www.ngspinners.com/lightnode/ https://github.com/ngspinners/lightnode/ https://github.com/ngspinners/lightnode/
- gourneau 15y agopython -m SimpleHTTPServer
- bitcoins 15y agopython -m SimpleHTTPServer cannot be configured from the command line. You'll need to write an additional py script to do anything useful. It's also missing a bunch of features you are going to want, like AutoIndex. It also cannot serve 6,000 requests per second out of the box.
- piotrSikora 15y agoSo is http-server supposed to be zero-configuration or configure-from-command-line server?
- bitcoin 15y agoBoth. It ships with sane defaults so you can type "http-server", but it also may optionally be configured with things like a path, a port, a host, etc.
- est 15y agoYou are both these id? http://news.ycombinator.com/user?id=bitcoin http://news.ycombinator.com/user?id=bitcoin http://news.ycombinator.com/user?id=bitcoins http://news.ycombinator.com/user?id=bitcoins
- deleted 15y ago[deleted]
- milkshakes 15y agoit's marak squires, he has lots of sock puppet accounts.
- naraktires 15y agohttp://twitter.com/#!/maraksquires/status/81591561602863104 http://twitter.com/#!/maraksquires/status/81591561602863104
- sc68cal 15y agoThat's lame. Take your downvotes and learn from them. Are you really that shallow?
- irahul 15y agoI did a `npm install http-server`. It threw me a module not found error twice - once for `eyes` and once for `colors` I ran it on a directory and tested it with `ab -n 100 -c 5 localhost:8080/`. Concurrency Level: 5 Time taken for tests: 0.046 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: 175900 bytes HTML transferred: 149900 bytes Requests per second: 2159.97 [#/sec] (mean) Time per request: 2.315 [ms] (mean) Time per request: 0.463 [ms] (mean, across all concurrent requests) Transfer rate: 3710.33 [Kbytes/sec] received So, in my micro benchmark, it doesn't do 6000 request/second on my box. EDIT: `ab -n 15000 -c 5 localhost:8080/` is about 3000 req/s on my machine for http-server; 2200 for SimpleHTTPServer. `python - SimpleHTTPServer 8080` gave me 1800 requests/second. As far as configuration goes, for a dev server(that's what both SimpleHTTPServer and http-server are for me), the only configurations I do is to change the port. Also, it's not like http-server is a highly configurable http server and framework combined into one - I for one can live without auto-index on/off.
- bitcoin 15y agoSorry about that. Bumped to v0.1.1 and published to npm. Should fix [dist] issues. I have a feeling you need to update your npm to version 1.0 as well.
- rlpb 15y agoHowever, it is simple and it is zero-configuration - exactly your definition from your title.
- aquark 15y agoI can think of use cases for wanting a quick simple, easy to configure http server. I can think of use cases for wanting to be able to serve >1,000 requests a second. I can't think of any that fall into both categories ... am I just lacking imagination?
- unshift 15y agoonce i wanted to serve a quick and dirty page of 200 thumbnails but python's HTTP server choked after a few people tried it concurrently. it's single threaded and just wouldn't hack it. luckily if you have twisted installed, you can run "twistd web -n -p PORT --path ." it's just as easy as the basic HTTP server but way faster.
- loevborg 15y agoThis is a very good suggestion.
- jc123 15y agopython -m http.server for Python 3.0+ http://docs.python.org/library/simplehttpserver.html http://docs.python.org/library/simplehttpserver.html
- createaccount94 15y agoruby -e 'require "rack"; Rack::Handler::Thin.run(Rack::Directory.new("."), :Port => 6666)'
- mrud 15y agoHave a look at gatling http://www.fefe.de/gatling/ http://www.fefe.de/gatling/ it's a http/ftp/smb server based on libowfat (-lowfat ;0) with ssl support. Contains basically everything you need to share a file. It is also quite scalable, see http://bulk.fefe.de/scalability/ http://bulk.fefe.de/scalability/ for an old benchmark. One neat feature is that gatling disables the autoindex links for sorting the listing if wget is used to download/mirror a directory. Gatling has a pretty good default configuration like automatically try to bound port 80 and if not available use port 8000 instead, automatically sharing the current directory etc. For a list of command-line configuration options have a look at http://paste.pocoo.org/show/409206/ http://paste.pocoo.org/show/409206/
- dolphenstein 15y agoI built a simple zero-configuration FTP server that runs in a browser some time ago (http://ezyftpserver.com/ http://ezyftpserver.com/). Been wondering if I should do the same with a HTTP server?
- mrud 15y agoNice idea, jftr opera already offers an http server inside your browser, it is called unite, see http://en.wikipedia.org/wiki/Opera_(web_browser)#Opera_Unite http://en.wikipedia.org/wiki/Opera_(web_browser)#Opera_Unite I just had a look at your page and it seems you used java for providing the ftp server. How do you handle devices behind firewalls/NAT?
- dolphenstein 15y agoI don't. :-) It's Apache FTP server wrapped in an applet.
- riledhel 15y agoI tried to visit your site but got redirected to a "Java Downloads for all operating systems" page. I do have java installed, but somehow your site doesn't notice and I always get redirected. I'm using ubuntu+chrome. It's annoying. I might not ever use the site, but I can't even see it with javascript enabled.
- nodesocket 15y agoNice work guys, any gzip support for js, css, and static html?
- lmarinho 15y agoLooks nice, I was looking for something similar the other day, easily sharing a directory over HTTP from command line. I ended up writing a couple of very simple bash functions that added/removed the current directory to ~/Sites (I'm on a Mac). Apache did the rest.
- sc68cal 15y agosigh Not another "Download this shell script over insecure HTTP and pipe it to sh" gimmick. Really? While http://news.ycombinator.com/item?id=2661209 http://news.ycombinator.com/item?id=2661209 is directly above this item on the front page? Have we learned nothing?
- bitgroin 15y agoLike the documentation clearly states, there is nothing stopping you from: git clone git://github.com/nodejitsu/http-server.git cd http-server node bin/http-server The curl installation is for npm, the node package manager, which is actually optional to use http-server
- d0vs 15y agoNode.js. lol.