Votre défi consiste à écrire un serveur HTTP code-golf acceptant les requêtes GET. Il n'est évidemment pas nécessaire qu'il soit complet, mais il doit servir les fichiers d'un répertoire.
Règles:
- Le serveur HTTP doit écouter sur le port TCP 36895 (0x901F)
- Il doit servir les fichiers depuis des
/var/wwwsystèmes * NIX (par exemple Linux) ouC:\hgolfWindows. - Vous pouvez ignorer tous les en-têtes HTTP entrants sauf le
GETlui - même. - Si la méthode HTTP n'est pas GET, vous devez renvoyer un code d'état "405 non pris en charge" et un corps de "405 non pris en charge".
- Si le fichier n'existe pas, vous devez renvoyer un code d'état "Fichier 404 non trouvé" et un corps de "Fichier 404 introuvable".
- Si le fichier existe mais n'a pas pu être lu pour une raison quelconque, vous devez renvoyer un code d'état "500 Erreur de serveur" et un corps de "500 Erreur de serveur".
- Si l'utilisateur demande
/ou toute autre racine de répertoire existante (par exemple,/foo/s'ilfooexiste un répertoire/var/www/), répondez avec une page vierge. - Votre réponse doit contenir au moins les en-têtes minimaux pour permettre l’affichage du contenu sur Firefox 8.0 et Internet Explorer 8.0.
- Vous devez répondre avec l'en-
Content-Typetête défini, mais vous devez uniquement prendre en charge les extensionshtml => text/htmlettxt => text/plain. Pour toute autre extension de fichier, envoyezapplication/octet-streamcomme type de contenu. - Votre code doit pouvoir transférer à la fois les données ASCII et binaires, bien que vous ne deviez pas explicitement faire la distinction entre les deux.
- Vous ne pouvez pas utiliser de bibliothèques tierces.
- Vous ne pouvez pas utiliser de classes intégrées ni de fonctionnalités conçues pour traiter les requêtes HTTP (par exemple
HttpListeneren C #). - Si votre code ne fonctionne que sur un système d'exploitation spécifique en raison des API de socket que vous avez utilisées, veuillez l'indiquer.
Les solutions doivent inclure une image montrant qu'elle sert une page HTML à un navigateur.
Si vous avez des questions, n'hésitez pas à demander! :)
httpmodule dans Node.js est-il ok?












..le chemin comme moyen de sortir de la racine du document définie).