Dies ist ein kleiner Webserver, der in C geschrieben wurde und eine Teilmenge der Spezifikationen von HTTP 1.0 unterstützt. Der Server;
• Sollte in der Lage sein, gleichzeitige Anfragen zu bearbeiten
• Implementieren Sie die HTTP -Methoden Get and Head
• Behandeln und antworten Sie auf ungültige Anfragen.
Sie sollten in der Lage sein zu zeigen, dass Ihr Webserver Ihre Startseite an einen Webbrowser liefern kann. Sie sollten Version 1.0 von HTTP implementieren, wie in RFC 1945 definiert, wobei für jede Komponente der Webseite separate HTTP -Anforderungen gesendet werden. Der Server kann mehrere gleichzeitige Serviceanforderungen parallel bearbeiten. Dies bedeutet, dass der Webserver Multi-Threaded ist. Im Haupt -Thread hört der Server einen festen Port an. Wenn es eine TCP -Verbindungsanforderung empfängt, wird eine TCP -Verbindung über einen anderen Port eingerichtet und die Anforderung in einem separaten Thread dient.
Um diese Programmieraufgabe zu vereinfachen, entwickeln wir den Code in zwei Phasen. In der ersten Stufe können Sie einen Multi-Thread-Server schreiben, auf dem lediglich den Inhalt der von ihm empfangenen HTTP-Anforderungsnachricht angezeigt wird. Nachdem dieses Programm ordnungsgemäß ausgeführt wird, können Sie den Code hinzufügen, der erforderlich ist, um eine geeignete Antwort zu generieren.
Während Sie den Code entwickeln, können Sie Ihren Server aus einem Webbrowser wie Chrome, Safari und Firefox -Webbrowser als HTTP -Clientanwendung testen. Denken Sie jedoch daran, dass Sie nicht den Standard -Port 80 dienen, daher müssen Sie die Portnummer innerhalb der URL angeben, die Sie Ihrem Browser geben. Wenn der Name Ihrer Maschine beispielsweise testhost.mydomain.com lautet, hört Ihr Server Port 6789 an und Sie möchten den Dateiindex.html abrufen, dann würden Sie die folgende URL im Browser angeben: http: // testhost.mydomain.com:6789/index.htmlmlmlml
Wenn Sie ": 6789" weglassen, wird der Browser Port 80 annehmen, der höchstwahrscheinlich keinen Server hat.
Wenn der Server auf einen Fehler auftritt, wird eine Antwortmeldung mit der entsprechenden HTML -Quelle gesendet, damit die Fehlerinformationen im Browserfenster angezeigt werden.
Allgemeine Anforderungen:
• Die POSIX -Bibliothek (PThread) wird verwendet.
• Der Server stellt zu viele Anfragen vor, kann jedoch nur 10 Anfragen zurückgeben. Mehr als 10 Anfragen werden abgelehnt. In diesem Zustand gibt der Server eine Nachricht "Server" zurück
• Der Server akzeptiert die Anfragen, die HTML- und JPEG -Dateien bestehen. Die anderen Typen werden nicht akzeptiert