Marcin Kelar (marcin.kelar@gmail.com)
Fast and portable HTTP server.
- HTTP/1.0
- HTTP/1.1
- GET
- HEAD
- 200 OK
- 204 No Content
- 206 Partial Content
- 302 Found
- 304 Not Modified
- 400 Bad Request
- 401 Authorization Required
- 403 Forbidden
- 404 Not Found
- 411 Length Required
- 412 Precondition Failed
- 413 Request Entity Too Large
- 414 Request Uri Too Long
- 416 Request Range Not Satisfiable
- 500 Server Error
- 501 Not Implemented
- 503 Service Unavailable
- 504 Not Implemented
- High performance (tested with Apache Benchmark - http://pastebin.com/zBG7nHbL)
- Make use of epoll() or select()
- Optional: make use of sendfile()
- Advanced control over opened files
- Simple internal cache mechanism
- Multiplatform (Windows/Linux)
- Basic Access Authentication
- Simple configuration
- Single-threaded
- Buffered event log
- Higher performance
- epoll
- cache 1.0 - based on current requests
- cache 2.0 - time-based
- Rebuild event log
- Mark standard access and error entries
- Move LOG_BUFFER definition to battery.conf
- Add Accept-Encoding/Content-Encoding header support (gzip, deflate?)
- Add HTTPS support
- New CGI algorithm and effort to restore POST method
- Extend Basic Access Authentication configuration to work with .htaccess files
- Rebuild range-based data send
- Add method PUT
- Add method DELETE
- Add HTTP Proxy support
- Add IPv6 support
Battery HTTP Server configuration file is "build/configuration/battery.conf". For performance test please visit http://pastebin.com/zBG7nHbL
- make
- sudo make install
- -lws2_32
Special thanks to ZoczuS, the bug hunter from http://zoczus.blogspot.com!