This assignment is to implement a multi-threaded HTTP server with logging. In order to fulfill multi-threading, I created a ThreadArg struct. Queue struct I used in this program is from GeeksforGeeks. Source: https://www.geeksforgeeks.org/queue-set-1introduction-and-array-implementation/
How to Run:
make
Makefile will generate an executable file named httpserver:
./httpserver port
./httpserver port -N 4
./httpserver port -N 4 -l log_file
./httpserver port -l log_file
-N is followed by the number of threads, -l will enable the logging functionality and is followed by the name of the log file.
As the server is on, open another terminal, which will be acting as the client. Utilize the curl command to make requests:
-T, --upload-file <file>
-I, --head
-w, --write-out <format>
curl -s http://localhost:8080/FILENAME
curl -s -T FILENAME http://localhost:8080/FILENAME
curl -s -I http://localhost:8080/FILENAME