Question
Project Description In this project, you will be developing a multithreaded Web server and a simple web client. The Web server and Web client communicate
Project Description
In this project, you will be developing a multithreaded Web server and a simple web client. The Web server and Web client communicate using a text-based protocol called HTTP (Hypertext Transfer Protocol).
Requirements for the Web server
- The server is able to handle multiple requests concurrently. This means the implementation is multithreaded. In the main thread, the server listens to a specified port, e.g., 8080. Upon receiving an HTTP request, the server sets up a TCP connection to the requesting client and serves the request in a separate thread. After sending the response back to the client, it closes the connection.
- The server is assumed to work with HTTP GET messages. If the requested file exists, the server responds with HTTP/1.1 200 OK together with the requested page to the client, otherwise it sends a corresponding error message, e.g., HTTP/1.1 404 Not Found or HTTP/1.1 400 Bad Request.
- If running the server program using command line, the syntax should be:
server_code_name [
where the optional
- You can test your Web server implementation on your local machine using a Web browser, e.g., Internet Explorer, Firefox, or Chrome. You need to specify the used port number within the URL, for example,
http://localhost:8080/index.htm
If omitting the port number portion, i.e., 8080, the browser will use the default port 80.
- The server should response with a default page when users do not enter a specific page in the URL, for example,
http://localhost:8080/
It should also work when the request includes a path to the requested file, for example,
http://localhost:8080/path/to/file/example.htm
- You should display/log the request and header lines of request messages on the server for the purpose of debugging.
Requirements for the simple Web client
- The client is able to connect to the server via a socket and to request a page on the server.
- Upon receipt of the response message from the server, the client extracts and displays/logs the message status, and then retrieves the page content from the message body.
- If running the client program using command line, the syntax should be:
client_code_name
where the
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started