Ihre Herausforderung besteht darin, einen Code-Golf-HTTP-Server zu schreiben, der GET-Anforderungen akzeptiert. Es muss natürlich nicht voll funktionsfähig sein, aber es muss Dateien aus einem Verzeichnis bereitstellen.
Regeln:
- Der HTTP-Server muss den TCP-Port 36895 (0x901F) überwachen
- Es muss Dateien von einem
/var/www* NIX-System (z. B. Linux) oderC:\hgolfunter Windows bereitstellen . - Sie können alle eingehenden HTTP-Header außer dem
GETselbst ignorieren . - Wenn die HTTP-Methode nicht GET ist, müssen Sie den Statuscode "405 Not Supported" und den Body "405 Not Supported" zurücksenden.
- Wenn die Datei nicht vorhanden ist, müssen Sie den Statuscode "404-Datei nicht gefunden" und den Text "404-Datei nicht gefunden" zurücksenden.
- Wenn die Datei existiert, aber aus irgendeinem Grund nicht gelesen werden konnte, müssen Sie den Statuscode "500 Server Error" und den Body "500 Server Error" zurücksenden.
- Wenn der Benutzer eine Anforderung
/oder ein anderes vorhandenes Stammverzeichnis (z. B./foo/wo ein Verzeichnisfoovorhanden ist/var/www/) stellt, antworten Sie mit einer leeren Seite. - Ihre Antwort muss mindestens die Mindestanzahl an Headern enthalten, damit der Inhalt in Firefox 8.0 und Internet Explorer 8.0 angezeigt werden kann
- Sie müssen mit dem
Content-TypeHeader-Set antworten , müssen aber nur die Erweiterungenhtml => text/htmlund unterstützentxt => text/plain. Für jede andere Dateierweiterung senden Sieapplication/octet-streamals Inhaltstyp. - Ihr Code muss sowohl ASCII- als auch Binärdaten übertragen können, obwohl Sie nicht explizit zwischen beiden unterscheiden müssen.
- Sie dürfen keine Bibliotheken von Drittanbietern verwenden.
- Sie dürfen keine eingebauten Klassen oder Features zum Verarbeiten von HTTP-Anforderungen verwenden (z. B.
HttpListenerin C #). - Wenn Ihr Code aufgrund der von Ihnen verwendeten Socket-APIs nur auf einem bestimmten Betriebssystem funktioniert, geben Sie dies bitte an.
Die Lösungen müssen ein Bild enthalten, das zeigt, wie eine HTML-Seite an einen Browser gesendet wird.
Wenn Sie Fragen haben, können Sie diese gerne stellen! :)
httpModul in Node.js in Ordnung?












..den Pfad erlauben würden, um aus dem definierten Dokumentenstamm auszubrechen).