Thách thức của bạn là viết một máy chủ HTTP mã golf chấp nhận các yêu cầu GET. Nó rõ ràng không phải là đầy đủ tính năng, nhưng nó phải phục vụ các tệp từ một thư mục.
Quy tắc:
- Máy chủ HTTP phải lắng nghe trên cổng TCP 36895 (0x901F)
- Nó phải phục vụ các tệp từ
/var/www
trên các hệ thống * NIX (ví dụ Linux) hoặcC:\hgolf
trên Windows. - Bạn có thể bỏ qua tất cả các tiêu đề HTTP đến ngoại trừ
GET
chính nó. - Nếu phương thức HTTP không NHẬN, bạn phải gửi lại mã trạng thái "405 Không được hỗ trợ" và nội dung "405 Không được hỗ trợ".
- Nếu tệp không tồn tại, bạn phải gửi lại mã trạng thái "Không tìm thấy tệp 404" và phần thân của "Không tìm thấy tệp 404".
- Nếu vì lý do nào đó tệp tồn tại nhưng không thể đọc được, bạn phải gửi lại mã trạng thái "500 Lỗi máy chủ" và phần thân của "Lỗi 500 máy chủ".
- Nếu người dùng yêu cầu
/
hoặc bất kỳ thư mục gốc nào khác (ví dụ:/foo/
nơi thư mụcfoo
tồn tại/var/www/
), hãy trả lời với một trang trống. - Phản hồi của bạn phải chứa ít nhất các tiêu đề tối thiểu để cho phép nội dung được hiển thị trên Firefox 8.0 và Internet Explorer 8.0
- Bạn phải trả lời với bộ
Content-Type
tiêu đề, nhưng bạn chỉ phải hỗ trợ các tiện ích mở rộnghtml => text/html
vàtxt => text/plain
. Đối với bất kỳ phần mở rộng tệp nào khác, Gửiapplication/octet-stream
dưới dạng loại nội dung. - Mã của bạn phải có khả năng chuyển cả dữ liệu nhị phân và dữ liệu nhị phân, mặc dù bạn không nhất thiết phải phân biệt giữa hai.
- Bạn không thể sử dụng thư viện của bên thứ 3.
- Bạn không được sử dụng các lớp hoặc tính năng được xây dựng được thiết kế để xử lý các yêu cầu HTTP (ví dụ:
HttpListener
trong C #) - Nếu mã của bạn sẽ chỉ hoạt động trên một HĐH cụ thể do API ổ cắm bạn đã sử dụng, vui lòng nêu rõ điều này.
Các giải pháp phải bao gồm một hình ảnh cho thấy nó đang phục vụ trang HTML cho trình duyệt.
Nếu bạn có bất kỳ câu hỏi, xin vui lòng hỏi! :)
http
mô-đun trong Node.js ok?
..
trong đường dẫn như một cách thoát ra khỏi tài liệu gốc được xác định).