

Http-server, a simple zero-configuration command line http server - bitcoins
https://github.com/nodejitsu/http-server

======
mrud
Have a look at 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/> 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/>

------
dolphenstein
I built a simple zero-configuration FTP server that runs in a browser some
time ago (<http://ezyftpserver.com/>). Been wondering if I should do the same
with a HTTP server?

~~~
mrud
Nice 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>

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
I don't. :-) It's Apache FTP server wrapped in an applet.

------
gourneau
python -m SimpleHTTPServer

~~~
bitcoins
python -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.

~~~
irahul
I 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
Sorry 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.

------
lmarinho
Looks 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
_sigh_

Not another "Download this shell script over insecure HTTP and pipe it to sh"
gimmick. Really? While <http://news.ycombinator.com/item?id=2661209> is
_directly_ above this item on the front page?

Have we learned nothing?

~~~
bitgroin
Like 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

------
nodesocket
Nice work guys, any gzip support for js, css, and static html?

------
d0vs
Node.js. lol.

------
naughtysriram
hey people, check out Lightnode

<http://www.ngspinners.com/lightnode/>

<https://github.com/ngspinners/lightnode/>

