A tiny HTTP server in x86-64 Assembly (Linux)
webserv is a minimal HTTP server built with raw Linux syscalls.
It handles:
GET /path-> returns file content (200 OK)POST /path-> creates or overwrites file (201 Created)- Missing file ->
404 Not Found
This project focuses on low-level systems and networking fundamentals.
- Pure x86-64 assembly server
- Socket lifecycle:
socket -> bind -> listen -> accept - Concurrent clients with
fork - Manual HTTP parsing
- Local file serving and file writing
- Clean build with
makeorbuild.sh
Client
|
v
socket(8080)
-> bind
-> listen
-> accept loop
-> fork
-> child reads request
-> parse method/path
-> GET -> open/read/send file
-> POST -> find body/write file
-> send status response
-> close client and exit child
webserv/
|- src/
| |- main.s
|- obj/
| |- main.o
|- bin/
| |- main
|- Makefile
|- build.sh
|- README.md
# Build (default target is build)
make
# Run
make runOr with script:
./build.sh
./bin/mainServer address:
http://127.0.0.1:8080
