Tantangan Anda adalah menulis server HTTP kode-golf yang menerima permintaan GET. Jelas tidak harus berfitur lengkap, tetapi harus melayani file dari direktori.
Aturan:
- Server HTTP harus mendengarkan pada port TCP 36895 (0x901F)
- Itu harus melayani file dari
/var/www
pada * NIX systems (eg Linux), atauC:\hgolf
pada Windows. - Anda dapat mengabaikan semua header HTTP yang masuk kecuali
GET
dirinya sendiri. - Jika metode HTTP tidak DAPATKAN, Anda harus mengirim kembali kode status "405 Tidak Didukung" dan badan "405 Tidak Didukung".
- Jika file tidak ada, Anda harus mengirim kembali kode status "404 File Tidak Ditemukan" dan badan "404 File Tidak Ditemukan".
- Jika file ada tetapi tidak dapat dibaca karena alasan tertentu, Anda harus mengirim kembali kode status "500 Server Error" dan badan "500 Server Error".
- Jika pengguna meminta
/
atau root direktori lain yang ada (misalnya di/foo/
mana direktorifoo
berada/var/www/
), balas dengan halaman kosong. - Respons Anda harus mengandung setidaknya tajuk minimum untuk memungkinkan konten ditampilkan di Firefox 8.0 dan Internet Explorer 8.0
- Anda harus merespons dengan
Content-Type
set tajuk, tetapi Anda hanya perlu mendukung ekstensihtml => text/html
dantxt => text/plain
. Untuk ekstensi file lainnya, Kirimapplication/octet-stream
sebagai jenis konten. - Kode Anda harus dapat mentransfer data ASCII dan biner, meskipun Anda tidak harus secara eksplisit membedakan keduanya.
- Anda tidak boleh menggunakan perpustakaan pihak ke-3.
- Anda tidak boleh menggunakan kelas atau fitur built-in yang dirancang untuk memproses permintaan HTTP (misalnya
HttpListener
dalam C #) - Jika kode Anda hanya akan bekerja pada OS tertentu karena API soket yang Anda gunakan, sebutkan ini.
Solusi harus mencakup gambar yang menunjukkannya melayani halaman HTML ke browser.
Jika Anda memiliki pertanyaan, jangan ragu untuk bertanya! :)
http
modul di Node.js ok?
..
di jalan sebagai cara untuk keluar dari root dokumen yang didefinisikan).