Files
http-server/README.md
Tilo K cf2c07899c
All checks were successful
Test / test (push) Successful in 2m11s
chore: add readme
2026-02-15 20:54:41 +01:00

48 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# go-http-server
A minimal TCP-based HTTP server in Go for learning and experimentation. It demonstrates manual request-line and header parsing and simple connection handling.
Requires
- Go 1.26 or newer.
Quick start
1. Build
- cd into the project root (the directory that contains `go-http-server`) and run:
```
cd go-http-server
go build -o go-http-server
```
2. Run
- Start the server:
```
./go-http-server
```
- Or during development:
```
go run .
```
Testing
- Run unit tests:
```
cd go-http-server
go test ./...
```
Whats in the repo
- `main.go` — listener and connection lifecycle.
- `readheaders.go` — `readHeaders` and `parseRequestLine` logic; returns a `Headers` struct.
- `response_helper` — helpers for writing responses.
- `config` — runtime configuration (listen address, profiling toggle).
Notes
- The parser expects a request-line with exactly three tokens: `METHOD URI PROTO`.
- Header lines without a colon are ignored; values are trimmed.
- The server supports simple keep-alive behavior when the `Connection: keep-alive` header is present.
Contributing
- Open issues or PRs. Add tests for parsing or new behavior and run `go test ./...` before submitting.
License
- MIT