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

1.2 KiB
Raw Permalink Blame History

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.goreadHeaders 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