Praktische Aufgabe 2: Webserver
Es ist ein einfacher Webserver zu programmieren. Dieser soll in der Lage sein, angeforderte lokale Dateien auszuliefern. Ein gängiger Web-Browser sollte etwa eine einfache HTML-Datei mit eingebundenen Grafiken anfordern können und korrekt anzeigen. Maßgebend ist dabei die Version 1.0 des HTTP-Protokolls.
Bei der Erstellung des Programms sind folgende Punkte zu beachten:
- Anfragen von Clients können in mehrere Pakete fragmentiert sein. Es müssen demnach u. U. mehrfach Daten von der Verbindung gelesen werden, bevor die Anfrage bearbeitet werden kann.
- Der Server muss parallel mehrere Verbindungen zu verschiedenen Clients bearbeiten können, hierbei sollte theoretisch keine Obergrenze bestehen. fork() wird verwendet, um Anfragen parallel zu behandeln.