How joes51/tcp-http-server-rust works
This is a small Rust HTTP/1.1 server. In the documented runtime, an HTTP client connects to the httpserver binary; its Server accepts a TCP stream, parses a request, dispatches a handler, then writes a status line, headers, and body. The parser handles request lines, headers, and Content-Length bodies; response formatting is a separate layer. src/main.rs is an alternate parse-and-print TCP program. The Body type is present but its append operation is unfinished and is not used by the request parser. Edges reflect the shown calls or README; other binaries are not part of the documented server workflow.
Main entry points: server.rs TCP server · request.rs Request parser · httpserver.rs HTTP entrypoint · response.rs Response writer
Components 9
Server runtime
- HTTP entrypoint
src/bin/httpserver.rs - TCP server
src/bin/server.rs - Path handler
src/bin/httpserver.rs - Parse-and-print TCP
src/main.rs
HTTP protocol
- Request parser
src/request.rs - Header parsing
src/headers.rs - Body abstraction
src/body.rs
Response formatting
- Response writer
src/response.rs
Other components
- HTTP client
Connections 10
- HTTP client → HTTP entrypoint: sends request
README.md - HTTP entrypoint → TCP server: starts server
src/bin/httpserver.rs - TCP server → Request parser: parses stream
src/bin/server.rs - TCP server → Path handler: dispatches request
src/bin/server.rs - Path handler → TCP server: returns body or error
src/bin/server.rs - Request parser → Header parsing: parses and reads
src/request.rs - TCP server → Response writer: writes status and headers
src/bin/server.rs - Response writer → Header parsing: builds default headers
src/response.rs - TCP server → HTTP client: writes response
src/bin/server.rs - Parse-and-print TCP → Request parser: parses stream
src/main.rs