View the step-by-step solution to:

Using TCP sockets, you will create a simplified version of a HTTP client and server.

Using TCP sockets, you will create a simplified version of a HTTP client and server. The client program will use the HTTP protocol to download a file from the server using the HTTP GET method, and then subsequently use conditional GET operations to download the file only if it has been modified.


The HTTP client will perform the following functions:

1. Take in a single command line argument that specifies a web url containing the hostname and port where the server is running, as well as the name of the file to be downloaded, in the appropriate format. Example: localhost:12000/filename.html

2. Use a HTTP GET operation to download the file named in the URL

a. Print out the contents of the file

3. Use a Conditional GET operation to download the file named in the URL again

a. If the server indicates the file has not been modified since step 2, print output saying so (not necessary to print out file again)

b. Otherwise, the behavior is the same as 2a)


The HTTP server will perform the following functions:

1. Open a TCP socket and listen for incoming HTTP Get and Conditional GET requests from one or more HTTP Clients

2. In the case of a HTTP Get request:

a. Read the named file and return a HTTP GET Response, including the Last-Modified header field

3. In the case of a HTTP Conditional Get Request:

a. If the file has not been modified since that indicated by If-Modified-Since, return the appropriate Not Modified response (return code 304)

b. If the file has been modified, return the file contents as in step 2

4. In the case that the named file does not exist, return the appropriate "Not Found" error (return code 404)

5. The server must ignore all header fields in HTTP Requests it does not understand

Recently Asked Questions

Why Join Course Hero?

Course Hero has all the homework and study help you need to succeed! We’ve got course-specific notes, study guides, and practice tests along with expert tutors.

-

Educational Resources
  • -

    Study Documents

    Find the best study resources around, tagged to your specific courses. Share your own to gain free Course Hero access.

    Browse Documents
  • -

    Question & Answers

    Get one-on-one homework help from our expert tutors—available online 24/7. Ask your own questions or browse existing Q&A threads. Satisfaction guaranteed!

    Ask a Question