Distributed Systems in C

I need to create, in C language, a file server based in HTTP protocol.

This server must support more than one client simultaneously and it needs to transfer any kind of file (.html, .zip, . jpg)
This implementation will be tested using HTTP clients like Chrome, Firefox, Edge. So, these browsers will request files from the server created.
The size of the files goes to kbyte to megabyte.
Again, this has to be implemented in Linux + C language.
I also need comments/explications in the code so I can explain to the teacher