Bouw een webserver met fork.
Achtergrondinformatie en voorbereiding
De volledige informatie op over het HTTP-protocol, vind je in RFC 1945 (www.rf-editor.org). De informatie die je nodig hebt voor deze
opdracht kan je vinden in volgende slides.
Opdracht
Bouw een webserver en gebruik hierbij de socket API. De server luistert op poort 80 naar een connectieaanvraag, leest
en verwerkt een GET aanvraag, stuurt de gevraagde pagina en sluit de verbinding. Een GET aanvraag ziet er als volgt uit:
GET /document_naam HTTP/1.0 CRLF
Indien de server zo'n GET-request ontvangt, probeert hij het gevraagde bestand te openen en door te sturen naar de client.
Test je server uit door een loopback-test uit te voeren op je lokale computer. Nadien probeer je ook eens een aantal
bestanden op te vragen via een andere computer.
Zorg voor een goede foutafhandeling indien de gevraagde pagina niet kan worden gevonden stuur dan volgende header en
een gepaste foutpagina terug naar de client.
HTTP/1.0 404 File not found CRLF
Maak nu gebruik van het commando fork om er voor te zorgen dat je webbrowser door meerdere clients tegelijk kan geraadpleegd worden.
Zorg via het opvangen van signalen voor een correct afsluiten van de verschillende clients (geen zombieprocessen).
Schrijf je oplossing in c++ en gebruik van volgende headerfiles voor het voorstellen van een TCP-server. Implementeer deze header in TcpServer.cpp. Leid nadien de webserver af van deze Tcp-server. Maak voor het ontwikkelen gebruik van Netbeans.
Afgeven
Plaats je oplossing op de U:/-drive directory Proccesensignalen voor 30/11/2009 18u.
Oplossing
Een mogelijke oplossing kan je hier vinden.
|