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.