Implement a simple HTTP server application

Assignment Help Web Project
Reference no: EM131702977

Data Communications & Computer Networks Lab Assignment

Introduction

In this assignment, you will implement a simple HTTP server application and use it with off-the-shelf HTTP clients (including httpc client, the result of Assignment #1). Precisely, we aim to build a simple remote file manager on top of the HTTP protocol in the server side. Before starting on this Lab, we encourage you to review the programming samples (provided with Assignment # 1) and the associated course materials.

Outline

The following is a summary of the main tasks of the Assignment:

1. Study-Review HTTP network protocol specifications (Server Side).

2. Build your HTTP server library that implements the basic specifications.

3. Develop a minimal file server on top of the HTTP server library.

4. (Optional) Enhance the file server application to support simultaneous multi-requests.

5. (Optional) Implement the support for Content-Type and Content-Disposition headers.

Objective

In the previous assignment, we focused on the client side of the HTTP protocol. We built a simple HTTP client command line and tested it on a real HTTP Servers (Web Servers). In this Lab, we concentrate on the server side of the HTTP protocol. Similarly to Assignment #1, the goal of the Lab is to develop your programming library that implements the basic functionalities of the HTTP server as will be described in the following sections.

The HTTP is a general-purpose protocol. However, it is mostly used in web servers to provide access to the web content. Apache HTTP Server is the most used implementation of HTTP protocol server side.

In our context, we use HTTP protocol to manage a remote file system through HTTP request and responses. Therefore, our goal is to build a file server application on top the developed HTTP server library.

Study and review HTTP Protocol -

In this step, you are asked to review HTTP protocol. In this context, you should focus on the server side features, since you are requested to implement some of them. We urge you to consider HTTP version 1.0 due to its simplicity and easy to implement. You can find the complete specifications of HTTP protocol version 1.0 in this web link HTTP[4]. Furthermore, you can make tests by sending requests and receiving HTTP server responses using the Telnet [3] command line. The pervious tests could show the typical HTTP responses for your testing requests.

Develop HTTP Server Library -

In this part, you are requested to develop your HTTP server library separately from application, to decouple the HTTP protocol specification from the intended end-application. Your HTTP library should be self-contained with a minimum dependency such as Socket library.

You are required to implement only a subset of the HTTP specifications. In essence, the library should include the features that can handle the requests from the httpc app of Assignment #1. To this end, you can test your library by implementing testing examples to check if it is working properly with client applications.

When you finish the testing examples you should check with the Lab Instructor.

Build a File Server Application Using Your HTTP Library -

In this task, you are required to make an end-application to the previous library functionalities. In other words, you should build a remote file server manager on top the library according to the following requirements:

1- GET / returns a list of the current files in the data directory. You can return different type format such as JSON, XML, plain text, HTML according to the Accept key of the header of the request. However, this is not mandatory; you can simply ignore the header value and make your server always returns the same output.

2- GET /foo returns the content of the file named foo in the data directory. If the content does not exist, you should return an appropriate status code (e.g. HTTP ERROR 404).

3- POST /bar should create or overwrite the file named bar in the data directory with the content of the body of the request. You can implement more options for the POST such as overwrite=true|false, but again this is optional.

Attachment:- Assignment File.rar

Reference no: EM131702977

Questions Cloud

Describe your rationale for selecting the target markets : Describe your rationale for selecting the target markets that you did. State why these markets are attractive to you as a marketer.
Discuss communication in our interpersonal relationships : There are pros and cons to using mediated communication in our interpersonal relationships
Which most of units produced conform to specifications : A production process operates in one of two states: the in-control state, in which most of the units produced conform to specifications,
What important principle did griggs v. duke power illustrate : What important principle did Griggs v. Duke Power illustrate? How is it relevant to today's employment practices? Was it a good decision? Why or why not?
Implement a simple HTTP server application : COMP6461 -Data Communications & Computer Networks Lab Assignment. In this assignment, you will implement a simple HTTP server application
Discuss most frustrating situations in professional world : Have you ever found yourself in a situation where the work environment was unprofessional. How did you handle the situation
What are the risks associated with fighting a format war : Between 2004 and 2008, there was a format war in the consumer electronics industry between two different versions of next generation high-definition DVD players
What would be the present value of the given loan : Now, if interest rates on other similar-quality loans are 10 percent, what would be the present value of this loan?
What is phantom limb pain and how is it explained : What is Phantom Limb Pain and how is it explained and treated, What is brain plasticity and what is its significance throughout the lifespan

Reviews

len1702977

11/2/2017 4:54:25 AM

Important Note: You must use only the bare-minimum socket APIs provided by the chosen programming language. Therefore, you must not leverage any library that could abstract the socket programming. When you finish the testing examples you should check with the Lab Instructor. A web server is a computer system that processes requests via HTTP, the basic network protocol used to distribute information on the World Wide Web. The term can refer to the entire system, or specifically to the software that accepts and supervises the HTTP requests. Important Note: You can this assignment individually or in a group of at most 2 members (i.e. you and another student). No extra marks or any special considerations will be given for working individually.

len1702977

11/2/2017 4:54:17 AM

Deliverable - Create one zip file, containing the necessary source-code files (.java, .c, etc.) You must name your file using the following convention: If the work is done by 1 student: Your file should be called A#_studentID, where # is the number of the assignment. studentID is your student ID number. If the work is done by 2 students: The zip file should be called A#_studentID1_studentID2, where # is the number of the assignment. studentID1 and studentID2 are the student ID numbers of each of the group members. Assignments must be submitted in the right folder of the assignments. Assignments uploaded to an incorrect folder will not be marked and result in a zero mark. No resubmissions will be allowed.

Write a Review

Web Project Questions & Answers

  Case study on usability of ipads and websites

The following report must be used for reference to complete this assignment. The Nielsen Norman Group published a report titled, "Usability of iPads and Websites." The report is a case study of the iPad usability

  Why you consider choosen screen shot to be a poor design

Below the screen shot, describe why you consider it to be a poor design, as well as its probable effect on the user.List a minimum of three reasons why it is a poor design and at least three likely outcomes of this poor design on usability.

  Specify the overall system requirements

Specify the overall system requirements that will govern the development and implementation of Zion Software.

  Create a website that will viewed on different-sized devices

For this project, you will be creating a responsive website that will be viewed on three different-sized devices. The following list shows the breakdown of the three devices you will code for.

  Create a basic web site design document

create a basic Web site design document that includes a vision of your future Web site. Provide a general description of each of the five Web page elements.

  Analyze the services offered by the web hosting

As a web developer, choosing an appropriate hosting provider for your client or business is one of the most important steps in the development process. Analyze the services offered by the following web hosting providers: eHost and bluehost

  Develop a webpage with a login and join now buttons active

Develop a webpage with a login and join now buttons active. When you enter a wrong user name or password it should have a warning.

  Describe the purpose and use of views and stored procedures

Describe the purpose and use of views and stored procedures in the relational databases. Provide one example of a situation in which you would not use a view. Provide one example of when you would use a stored procedure. Once you complete your origin..

  Create style sheet that applies minimum of background color

Create a Cascading Style Sheet (.css) that applies a minimum of background color and font. Create one Web page and a heading tag that overrides the Cascading Style Sheet (.css) font settings and makes the font of the heading different from the rest..

  Develop a word-guessing game

Develop a word-guessing game, like Hangman. The game will have two users, Person A and Person B. While B isn't looking, Person A will input a word up to a specified appropriate maximum length. The word that has been input should contain only lette..

  Create website prototype for tee-shirts sales using html

Create a 3-page website prototype for tee-shirts sales using HTML 5, CSS, and JavaScript languages. Ch. 8 of Programming With Mobile Applicationsdiscusses a variety of web development tools. All program files should be in a ZIP file for submission..

  Create a browser-based flashcard application

In this assignment you must create a browser-based flashcard application. A flashcard application is a kind of quiz or drill.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd