Ваше завдання - написати HTTP-сервер з кодовим гольфом, який приймає GET-запити. Очевидно, це не повинно бути повністю представленим, але він повинен обслуговувати файли з каталогу.
Правила:
- Сервер HTTP повинен слухати на TCP-порту 36895 (0x901F)
- Він повинен обслуговувати файли з
/var/www* NIX-систем (наприклад, Linux) абоC:\hgolfз Windows. - Ви можете ігнорувати всі вхідні заголовки HTTP, окрім
GETсамого. - Якщо метод HTTP не GET, ви повинні надіслати назад код статусу "405 не підтримується" та тіло "405 не підтримується".
- Якщо файл не існує, ви повинні надіслати назад код статусу "Файл 404 не знайдено" та тіло "404 Файл не знайдено".
- Якщо файл існує, але його не вдалося прочитати з якихось причин, потрібно надіслати назад код статусу "500 Помилка сервера" та тіло "500 Помилка сервера".
- Якщо користувач запитує
/або будь-який інший існуючий корінь каталогів (наприклад,/foo/там, деfooіснує каталог/var/www/), дайте відповідь на порожній сторінці. - Ваша відповідь повинна містити принаймні мінімальні заголовки, щоб вміст відображався на Firefox 8.0 та Internet Explorer 8.0
- Ви повинні відповісти
Content-Typeнабором заголовків, але вам потрібно лише підтримувати розширенняhtml => text/htmlтаtxt => text/plain. Для будь-якого іншого розширення файлу Надіслатиapplication/octet-streamяк тип вмісту. - Ваш код повинен мати можливість передавати як ASCII, так і двійкові дані, хоча явно не потрібно їх розрізняти.
- Ви не можете використовувати сторонні бібліотеки.
- Ви не можете використовувати вбудовані класи або функції, призначені для обробки запитів HTTP (наприклад,
HttpListenerу C #) - Якщо ваш код буде працювати лише в певній ОС завдяки API-сокету, який ви використовували, будь ласка, вкажіть це.
Рішення повинні містити зображення, на яких воно відображає браузерну сторінку HTML.
Якщо у вас виникли запитання, будь ласка, не соромтесь запитувати! :)
httpмодуль в Node.js ок?












..пройти шлях як спосіб виривання визначеного кореня документа).