A non-blocking directory listing and file server. It implementats HTTP/1.1 keepalive, chunked transfer, and byte range.
The HTTP server implementation provides a channel for writing chunked response. It could be used as a library. Read the API.
Usage: gofile port [dir]
gofile 8080 gofile 8080 ~/public
go get -u github.com/siadat/gofile
HTTP/1.1 implementation checklist
- GET and HEAD methods
- Support keep-alive connections
- Support chunked transfer encoding
- Requests must include a
- Requests with
Connection: closeshould be closed
- Support for requests with absolute URLs
- If-Modified-Since support
- Byte range support
- Transparent response compression
Submit an issue or send a pull request.
Make sure you
./run-tests.bash to test your patch.
Thanks @valyala for his feature suggestions. Thanks @maruel for reviewing the http package.