Basic HTTP Server (for college)

Completado Publicado Nov 3, 2010 Pagado a la entrega
Completado Pagado a la entrega

It must develop a http server that is at least able to address some of the most common requests made by Web browsers. C ++ is the programming language used.

HTTP uses TCP as the transport protocol. The program will only receive the TCP port that will serve the client connections.

REQUIREMENTS:

- It must be a multithreaded server: Able to meet multiple demands simultaneously, each connection with a client will be associated with a thread.

- Connection accepted: The server will accept only those requests with the GET method. As a result, the server must send the selected object. If the object is not on the server, then it will respond with HTTP error message like "Not found" (code 404). All requests to include any method other than GET, will output a HTTP error message such as "Not implemented" (Code 501).

- Version accepted: The server will only accept requests that use version 1.0 or 1.1 of the HTTP protocol. Requests to use any other version will cause the sending of an HTTP error message such as "HTTP Version Not Supported" (Code 505).

- Connections must be persistent.

- Conditional Requests: HTTP allows conditional requests, which are those in which only return the requested object when it has been modified from that date. Otherwise, the server simply sends an HTTP response message such as "Not Modified" (Code 304).

- Control access to objects: Before returning the requested object, the server must check whether the client has permission to access that object. If you do not have the required permissions the server will respond with HTTP error message like "Forbidden" (Code 403)

-------------------------------------------------- --------------------------------------------------

The server must use the mechanism of sockets to communicate with their clients.

To facilitate the things, I provide a class named "Thread".

The procedure for creating new topics from this class is as follows.

First you must declare a new class derived from the "Thread" class.

Then you must declare a function named Run () to the new class. This function contains the code that will run the threads. Finally, to start a new thread, call the "Start" function of a derived class object. This feature allows you to also pass a parameter to the thread. The thread can access to this parameter using the function Arg ().

The server needs to work under Ubuntu and compile with gcc or g++.

The code has to be in one file called [url removed, login to view] or [url removed, login to view]

The command to run the server needs to be: ./server [port number]

------------------------------

That's all, read the PDF for examples (

Programación en C++

Nº del proyecto: #842859

Sobre el proyecto

9 propuestas Proyecto remoto Activo Nov 6, 2010

Adjudicado a:

pawel100

Hello, I'm interested in your project, Please check PMB for more details.

$40 USD en 3 días
(14 comentarios)
4.0

9 freelancers están ofertando un promedio de $54 por este trabajo

thandadude

Pretty Easy project. can be delivered with proper class documentation & code comments to understand & know how of the api's. further implementations can also be done but since its a college project, it shouldn't be. w Más

$70 USD en 6 días
(2 comentarios)
4.6
iPPS

Hi! Already have solution. Please check PM for details.

$80 USD en 0 días
(8 comentarios)
4.0
Xoor

C/C++ with good experience in Unix(Linux/BSD, the HTTP protocol, and threading

$40 USD en 5 días
(1 comentario)
2.2
webdesigner95

Hi, this can be done easily. see inbox

$50 USD en 3 días
(2 comentarios)
2.1
VipPro

I can help you!

$35 USD en 0 días
(1 comentario)
1.1
eniac111

I can to this :)

$35 USD en 7 días
(0 comentarios)
0.0
diann3

Hello there! check your PMB :)

$100 USD en 3 días
(0 comentarios)
0.0
mokaga

Hi! I am a student of Mathematics and Informatics with quite some experience in software development, so it won't be much a problem to do this work. If you are interested, feel free to contact me, so that we can discus Más

$40 USD en 14 días
(0 comentarios)
0.0