La tua sfida è quella di scrivere un server HTTP code-golf che accetti le richieste GET. Ovviamente non deve essere completamente descritto, ma deve servire file da una directory.
Regole:
- Il server HTTP deve essere in ascolto sulla porta TCP 36895 (0x901F)
- Deve servire file da
/var/wwwsistemi * NIX (ad esempio Linux) oC:\hgolfWindows. - È possibile ignorare tutte le intestazioni HTTP in entrata tranne la
GETstessa. - Se il metodo HTTP non è GET, è necessario inviare un codice di stato "405 non supportato" e un corpo di "405 non supportato".
- Se il file non esiste, è necessario restituire un codice di stato di "404 file non trovato" e un corpo di "404 file non trovato".
- Se il file esiste ma non è stato possibile leggerlo per qualche motivo, è necessario restituire un codice di stato di "Errore del server 500" e un corpo di "Errore del server 500".
- Se l'utente richiede
/o qualsiasi altra directory root esistente (ad es./foo/Dovefooesiste una directory/var/www/), rispondere con una pagina vuota. - La tua risposta deve contenere almeno le intestazioni minime per consentire la visualizzazione del contenuto su Firefox 8.0 e Internet Explorer 8.0
- Devi rispondere con il
Content-Typeset di intestazioni, ma devi solo supportare le estensionihtml => text/htmletxt => text/plain. Per qualsiasi altra estensione di file, Inviaapplication/octet-streamcome tipo di contenuto. - Il codice deve essere in grado di trasferire sia i dati ASCII che binari, anche se non è necessario distinguere esplicitamente tra i due.
- Non è possibile utilizzare librerie di terze parti.
- Non è possibile utilizzare classi o funzionalità integrate progettate per elaborare richieste HTTP (ad es.
HttpListenerIn C #) - Se il tuo codice funziona solo su un sistema operativo specifico a causa delle API socket che hai utilizzato, ti preghiamo di indicarlo.
Le soluzioni devono includere un'immagine che mostra che serve una pagina HTML a un browser.
Se hai domande, non esitare a chiedere! :)
httpmodulo in Node.js è ok?












..nel percorso come un modo per uscire dalla radice del documento definita).